85228771515917987449869629565353261461394279321985474983418834516667662326474246151634233242728637562237562244862361824266648241719627495266368122442144476795642213317478832995987482612364969681268934751938584317737395186528378721795711327227927724321799611498748166972167553254314151416766678322788522346693331516199756422881213136158893158557611396316537376813649849236921491419339567317158761212736286216157263453152137453149473115823523644157337611175535183386211721846131141962269691626444144427529822515333941696533256319236228853795935137319487582486331682541537112496776259367578981813859743322543349536116615281219414449742849163956993762534244229998979998418936614932223167337229149622377776972877423685629221814624526197994855694315425341247794243529133348445262961442144786249988139681388572992452176956586624443389724911166923872431522466645859836367583675866448744286854482334348499623156612166377485592649111923461156112345453998747454739482964779685625978249778158414379546174581699352158429476466114459732957224729412825358518589622562982447497472173612368993977574619322721683721854751438763783374472117957959971383214121414529662856438452275853158375127179933828477473432368618644963242513535237242622753154666572615698573263383787258229243284371645953357616826124778287983478224936252431672341346377515455159816746785661351973915864733659315334812935394332962575242739878161587617225178376259445682277944323841269449537123773554212421216883847718437797965473252371854964127369231969892151788731748425954933259469949459697734341285551462563333541837879647113299723224763994897381459911863989772398636489563283348176129915758278675689762349932218718461398918469252494281313837524316469415364399927351567733448636955837732149529186398934416621383438115297665216385572291119567847157349851193377666194915121465821692666827186519452172277956487636415523967261817517812125898483847875153338632873271265691385357217334135628885311182321817398867294137986135953141256243331886854547568685568317261163941152713149233435751329721927613868163953851874677331859736559743947677239415157524329519277184423999484245364591925426168737659173352185157734981766863546738618991943335351958534398853394952913191241964352779592689981492825153262657118672278771642357387119833687795939536751421478882685816538666569127289548659654234157243814118296152619512533744115119425676271769151192133334156335537656529726852399649148656823831979514886391896574518792331816854455527792739832629557145291534574231266577777238321665621181711371875941731956189518257342431414494526162296829294681898616438794437872336721881174676135216838721165499377265251582498117411748834762374851575284364457435385858329231768952683738924418237224414873816196827966674586946744196119532916288114885745355335234819357784128585729466539317263285182176612484852821139296491239917317616676582911633661242538598812338189744246888849963383869169892217195422116845341119831318917836287353647647835241776217836666747233473861222564489337513746488687771359722552213164158644274822345521343815952241771549252279817141428382369785444271515489997876331846962224163227896684132336849616213477562192348482214752313498895294631751565518796694316919626482761917271723359446471348169725226861965271434564728814624257838139865741483314343257847886315829395487148117678539767952334789229113283161154896359269186778195846552589978331888178663362154845913175512582979442639138527317645111384622227455289389546449915315112374586838753189487616896519385232624788871286418954439385939814714371345496454357549847148533645173717382732936911453961184726327598931471235261254371846675181343969116944831771368944132721946842453349793188944793344749661138286486837663698732329227982155985121835327189118784796555632398862156286271311883139432327319529223646625644958516571416221911737149861331746614558735759288127374517276744129158259294751354289454591217728662898957567536628537157558562334365653524581383645791764873951444335811342721524611692645433453968623686643756155955419423387469319331838134323889494615795221971885372375138953728593843125975765513342846599345779793437938937814731213898862884723363184834583815661598834342676129794376854465911388874445569715354618918228972172783395885166324943843382129249341617691484179776451612832625558473819485242116462487786151366229616577922425529694384874331546324734485356512377655176623133557987983816423414752612765947642579865547225384558646538971963669355233774945931315512415396352864669376652947282751115946647372138296374177266112864265227747331574943877591381488218652268478993114384211713868944168933796521982632858246229281387753977881166652191416849444132223516178985695353454472177779219318124876735938648649212144811657192465738592311843527836784327715118186861278249352983226596422468782312119769324317915237791779386535314521357995245828253956893227679597278492878945757268872672591592811112522622278242385918246261593596514936456944424697915336313193797584571269129131161531373351342478293834483669552785843324775382227948453489474477112631832382782921782752452798583315121349529914112822658873445455676137526283755823119181817752212112647618825524112117552348167895771328286226841469759674635329218317788711114287238317368761571186281855882528764129839684274417617631913888781573339139533818919245987243422433127476361498645124698161438854981955112243685239999192915671749842845387462163558119545871488421295146932187814648962583925742432694447232795519249334287955878954187494688281642362682244226455258977768243293631429632316811756118735266675616293928136581269267568299534171648735465844915229273999289482292898151662177151856679891945594218313646815483378153382422319284332491938594835231652392713967661361819323979991217385931395912251976192721742679767516941844813412254963928346541435788961433132218325531663292645951369596378374757433558981231149873258299965295182579676261171123336524348144177719245752913558217437282987236898919142586949857734533176295426234619357527181533129643316939269778624246331126948488746663476482932565767173643564748151542431587614989597944447738723235337579199731686234567565642365223864722944938527894384845776519634237343921548334726243335914956732763987136375799278777335793533168237888593688768863617884484593111235774951646183649512555442667627351627781931868528293142364934554862352173493256849417498332488832936163982545715294515491452655251617316383954637376225179832635287577379464568789515396459297352753783551795922869249644668745498198285959579163875156381266553911684184913572799721823588389424988715447667699623543734895529127439192753992232388123914698734754543565597111983825185179826748695718432238962691523394265232141433938328645859831696227985238414466198157627456252548316511829183391763399263845165349771762337385159358242678245812416271251628553336929935448449929198451312736554855239416179265511663868543474589588383923361752423712435869245898398411933179911186958515183215236481161129783328961273964233532987489798773845124118655262438235385746554951269118229347951442613983386146761668289244858275985969121519921138552364483569999225369342617714199993239454295611669437711333659259586637483495262964229268797518551519487752239341372992188816655947884989732954332269716315666534553169335816665611242943824733657756318633421847144614366758718192849729984276647399361947221343528329413852659511931169954526169883988685484342843261136766465252216654872739983581644124647686619424112149848631287526532831325197852573912334759899554312918478618941619811144471161965733283351793292491625672631224216194878221974689846121349696672879145263856143184533888968956199524777997231584256678519869912326513885926377599442591336554127242793464331484881119458272547598647896975143191374432855982255665249879821793326864949423693594236387931568433969914654953224728515679966242255562717852144233184739319882835193379459416197431429741355991512993379755223261143156187412418155923897644525811129849559623622426235834213734126975616886572665388737357919136253995127933913294112184415942976861899162914822894738552473339316211531364789385242368659989517124868886826135615734372311718131245968373272323462744918296985252397429524159169453838416771123917764332226373157845756389916347132139689812329144449716188928132912199155659122681542451488655616454793324537251914276786415842463415732712447263372567718471395558155265157823911651152478756164329684993929164986349338841222432426637791144987426742179551481831614384472834217396537743296366249876899892727933296218536145623665553157627521141324964558167529268863132259959189141626822762643243444687169941355132451372686353252873967237582124545891161896515679672625532751616466287975282741937247425744735619831258643237913353365216757215188378755485662196633967357783292664625751712171824168342964485737389559459299526593711878184651239199272621118274536273663786759118671571458516765574389544553236918224496789544674592126816514945452257656545983374189319987154337674721584444424751394266118738126817751998473115831372462255398815212841636396343974574632177551393224563591135428576763179862827213135412258689947738754742374544111587653845424453865132739916559558178735723291143442199624999164149237916516615532351557489325248337359143849383347885345854761663513595699936924648245672373523856773955293591792846634877968729757786553715388198841721119144827646561486214583384439653846677465874712494572366626674279491141713634871457771269965158776199969444866742262565116988674258965456621367588844224892726612675893755169837791912321734664721354449967572257832144259861384218411683747959855749514232875446356728899669931326636715632416412513482634651236484219341131236827925313142123377431669634268256564273317313619985962833818697171496726696694221136473216393292533323189751461487569449361462214229865467417962681458872912989338696211943867725288382919938619267293121925853543655736113295323812759795254374922634756144699972995373544192551487875155757591178487774479471661416351968266331884874633394722619948644519886375785981385476483532177584794538743546197211368341865254987114321632857796651815615432511178146395737984366229124661679462211616879613376448418559561756227999666624449844271571139993777593282776441158397868696335159358283351722573916766244814145181732171434466278355813631164529638871762626968216342367357974852383521152324971222519571119943611654946264869674452677262438154463314584977893237944489112231856371512318532175433383199521786811119369672271715114745549281681866512234923423565774583936596248737631646244924234283616246689344836279537383273632746629521842321545162661612236878256882368358181434394746966923228145868876249763555977848964139588663348819144212151697221436775352761125212742359315226788715984472473964856533872186932758761964899872992339618713666225289339471863459684434114238934569532514793592684724617678994376483465386866968732874652468851763722225929674131767269322514939355477454155783267438449227276729785379816279694163267944446227977325817951633662284324511965919673156728843257495346115125286594242535317881779782318554944731873948451312914379863282584915174138351538943232484441414464365615894984936621889942358121732776615751674349868312853191674569485852233682199153175599853178182971243438233797357148139425463273968768248699541966663459466847866912729268424559943951488671314121355124393259562968431674865334126983294635561952478838433689583244879425822473442763354273438427724876441452243838239151233125132114865719565886359678645314349961696438983538695234188778628945874344388818285247877736791536216577158815475537856283965681932121419885676672595463247221116318184766868253354423257664817164977293541352131741832662914894462697352587729124732118639613896193746665435123977827391187656956424284134953682356834455522181681253836313978577531788642849316244851616129197234992158897927344721396747797983992344832326565837443932178947183864299732641345783796932882488432126491546341197541988729378357449741624293225342678868581946489245654894296752868746712821515164391442116338782179672137441191258287369137466789875137777545115829688924947316613394454558599554911658833292716946641162348117221314342744213746524679222924562813195346831927313534361224323298799618716989369536981215561285311677124829524796242663883413659254411969438849738186948598195542541516193775316955314951122248559781996721533293677633993141337658559223411839199649567333478363191761343186464599271727988358294562283545843957631233457696942149938522716817938189718876997525193953342752391992715154853978121419852762698194618229238135316543118523971987932398127917882717696725811211477593264643858574633918514241643837156416676243767941478237774246956714717625243694178882536195313351663291618395544532349695944694476452658616454478425883673321147722247298278223499357645756367484375922438141133251269911142688768945653172374446414612294696468118325991433814353327196749341698367981891522619174174731352624887473176998683279737618473719115341524351724521223784255334369768785661994467263513987888271252274934283811563639328282177474629994559797736461345825227639164764775588918876418821935319972691242284919238534444254973511481732794444942617864214337983468428354853441958779815395211626985574255266285113536142145638158953212434287111595122389423719335883534927284268888146525223228865772587941781321812638132566234331329449844789231863876211898962613296922533531664428579698919171785265762489914431526799443516737194531142141491484584529374381794426835758768517269222643367768567959322441715537252113581459657752283616324253461492333885364413941938818477962165427695783656897275251236122523134339314425634465291744379738121911272287282982237834782814578583421633432853869348822545699278356356889935423442369265353533651753995677194948894133323522557227147574269795741146969284596319764283424491875528611463657559983421598749349812338749662655791238645417342633496126284926799741768286596112962226917187531669769856127743944277849388533153218853362797253634571974114792271615685953175234624381238176978845783655875717368855756933239617573577784252325456869738237422317453919881143968981453628241259766922771179264913992973259541669779357916873589892277934431431467941946579591795132592889531181765318328375654324363517198733239378497992321384639248317269384635834938517654729975648228132562439786118587162656178161321376435732765864351719841754673539218123323853569175755471137461852357965219877951737697676311195711922642124896399637684655146123526844116956359946191575444726741184851714887852389493628793166853136352475573742345926328977273194927545699646517943369574512452258821461596299616332334476627271985568821965427662157255787541637746744131647876876555785274642224234116361864324111543613125612373842453129573156238612577395186984367174546694813779129127615183142115269717595314692744825336253921111741258549286969978976927111545486487467825426494117831916865912546786953733859529616734619117171785297569856691351888173526127764415344116992482113154338921963728178583114837836524496145733389673224548413828236349138515531818165515637313936247915492633168788782887655134145535661568584197636548286239486513288963215725978426726764414446225973943136685585184482713657152542797854988818866412482245247316737765285114942565147416851845354791847145663249116999414643446531863163122878661558571418618951263947935867612362956831921579242334237748135688311411286884787217313567275133471686497893396989511667181639465998834255742739516936554976783845624239791222313131263575318545424665868889715936532418178436474176425329371768735313516493619977412243233131751438433775343358589131813213581623496729896553865166754543782513641327347796138712423377361271489738953542283376586187341376596327753117672467667423762955214237394439756977551463345539142572396241729349272615635383433173329375363263817543317945548853273461254239654148828675225924669539998186943481866384838512946352391491975258141114349517214695867866429534333548744553463831559255131325657533355571587553452295911541859646616358127147515693111929249566325211824351827737829289455856268483811528223638572742714933978461347123932612549156925272287839135338713333218971233963482257112341762797344398221337449322789276441672146951245268173582384191573576125177943151896947375692654579651629591478337173778937667488219243946375924132284823481392946861944854144865489273293654924419233332363638252617842553195247791144924383513462193794492857469615726519124491397129218478167626446447116971583275351952477137957991664282697589168168531651668148579652273789321274643845288351193281612978173619727171562466854112814512726622911271651721437892277627443622586651177738936541249685652751257151866711323127248422712392789621967665841264415247732721399772223827372738512218552421776132116864787881878181658893142265843632497771853444812694235834848923331427134369976315913866237486159359314239625232958134595973296529762942399249524573892116715554247911139427861538612184376126471746217456639247412131392593348179531437529455435786339526817238269867497696979825588172218783754748171112455834244421413149598599431739669985619471138284197853821311582112676278481378733667338343142886978224231625914427193943927185896733358873481866189278725115812915845627669916537982925195653366852996721651387862445883957963393128387467128741167826865358528735187321354772944886663848348289991572926527993295266255796817835654531775897648135126456678499335432318929392321853393355957689254474852535137144763521824222152942521133322791931361721469746495581956718988741456672975272179956854911692392427343794245472345965118912443257621312495654394215538314174252794733139315631323241473343522486542387391146857259489751129167175736329747942641751679762277632183443456741519627733695899659537275367686141334833111368313671524624337434886422167915485422122941289457212984283974686711295469513534291489192776471142734985652543981622914511315388831912443418183288139962524978245876618644392692696125571753624745399573481638169734318165618872344112913433314571267547869319468823841658137381859646793515772621558931568175763986389454281512357496496851992614357983328639367166924451562474636473752283476255621394593865788677476686671189972991125156972365668889587611515323341271713484284569865916362635431742294586922944266228235145655777768776122791399724393819934583699155576275565322167435534654543936484767232695364275397469915356581385972655517556566411655266981488995951397974875987267755535492456893316413548455315158297746751492795177269469413239216587293234191134493433548885313353511272177178235835889175949816824632725639854125412851753257643398975641664372133929195269324533361477534289184618222678612852294163559443238811316627139234989377662157994226735775851731164158539169341897119896446516915176785323868412972922827254177671227959564239125724674926734612867197163664453229435179188548151518779148371191152192466235396928514731881615997466996343731775456334312179597936939176182769536611816469765843452482216675435147793465712111217386924629221596832913824615273839557689848136236231352666131131657374866771211365588266116523884516146662631189132378489244239834752736843317197816996545311681668481884389118694525277718867657932428985284297162386283834932773537699772241388151299589482595335215467427827653839957799772386961145612755248865262556364523461928575184178168825682615416927765131644868557421464859139719558551535493163797397857822641458238266821249868639514588873758125974555553783669223578254717344635862262416445552171186352966698977586552272346353442282629458284132145968681311473869663924575636564358367635575593674511875244462682464586963377498386426422194681398741963952249711244228235228893818286552272238188751817862148629997978375427926594769726579439132482167994326115615917317563688417949152913528683667343465537223296367977134216813839896353639965139945483556868332165468536249465623962413468624148491321926875411966251794641271151982435371914759437586866212158771242347413416211568183743157716718436814695712471243928178969963261453971418973425867152685753656455249872395866338152531613584829835754344132346873493892373976289498812518963831329917163245844777299793976268738511578114824246169765992387383726223871599285852474251898121185648161753776121946165137721736382999765115395171725593487125184513374821967438935855817951491872845313489782228951545417194359246313584286335257529211558894733387742537982719162615362865728116342811449586354873375955656241843761182961863293761138414218597549197181165387822892868712666995615627188987746635695543318945632495965476195236292612167682536955293825834729981111464195814217395817927374214882179545387473194719626767196634681215237488496911528575958246456763133746236328931877124745511641444968293414531752419363337721441592986329435822391143514336279992783853932555322118391231434339751337923872556711677984515348544916265853366619111246142211316574441721215553476642181253479747428911564124657237587723375573986151225133466887838158948892362752348758231382891747642366578227173973727413934679751662532854821311386473554592876975719746913949999745475335251235241788336136651877169115555322383623135444321284896583191227794993318529332524989411385646874955741429769823269851121562345856221756313496443336224949426155819627385912366964816675222323711287578478649676634799855153377593814171677981284683118435759137154511264178236213665945867736199214959665792836693296648911523829796341198754664471871584371622929676942442444537884738953545367574461864931924549715394142278965332668274271154335248521162136774641327688327313821748375455514183816317728953176697239522373383885577314153242423394177419191382353897781721795857424213862445668429226251411155191219441661936276143774519462412249162567623525947191814316647731284621586532841626396783687761111681934368141392872152526583531852386419538748376115965117122454836579894786382577535428592659879268588241159662847492489616716357617891386359331648699141675695598568295139199618449962992352335164813115653266285537968576481514959681869523874546342951526329711669284579485816544488892131585694986417827137865711872818528551119173787633123951335946567659481447182216685784166161954265365376941369784658668965421625144494488731511352887245323179568267472939687644662311454612619348611468813168877933526175589558852285725248111416149844946229753336265577771865829242151524552447451562682935431511463871922716144453242586241156555541788488735136144675985364511236743334333731991175615389831681631617912424349772637126823246644114699269534745735433247492462329611361843525568885996588543584462729283652834145778654383148691142639579228853814591867766866632416635951242124586238398384326452414357646299321412941336955798685136763737128816518867222254167924438127897579319571362335178354542382643784683678441196238263792127213532475561347248939875828416648755962657354256371355597832368189446242118258821619863946685933495954882851253587781615519655869268245396686724777471712941513652338549998663857112441221181875469823735456696289536811593459466956559413118345862539914714452564692132814275459185284649954171724384547871239259443697283332798942548339669957346337925986175725988192676647343164168536239483536849984423317315714923584335228496813255382873448114213765272636976988482333773823298597145112559387528645635331334552633748113743791833231383766137151839318719224691777992372357949865653995372722864632585682426478145535833815588135692196731134518724339178772361638174791122994515413994147781155946231564322315491888967322294231247881677894183447795526168439451838866562775428589681869859713119223415171299642279528332812433686624943344216531434989946525772555583912712766446122661916495518425658534675521258563928124881522659994573666133258863621299412913147831574344266176265327358531177428554278822397191282132516317753764128423176575838673391221694456387582716762211476613347711557719356636295633464836841758744316193574319316246111351642177186745945482753977285431163742365386784346866149472352352843295479123717842612848883872552422387998853562913624928414941986192482343191379932244142937262179723139321684417637181192927343151366695582322665443548781583895325929499728465237267149365251983192799584119127717421337689283797934473457971456548812335838212329396289493112396135823386658698748545341341651686995636152466357229852187986862779196525889152919526157649922249317466523524647684483755616293719895661885889692685634185978468427614345454817291569145748137867292251655152334365111139163495514191212157128387748892921327962265211777452181663332193191476773914862958249575213894735767525816279548898139142848386735233913321166185315311915762729522855945789997516555312226227642129636322185569694372142264552433212845952447279274587146126271295576765776296222151331859962813919211775969362273831116192616583796123117758181828615924267448189164561299735956343576961358717612298851626285349282686557575834721887953674942685946741411771675365415693852555468295758284552164557594223811326333364669974132272887193387652722514412218789564457571527624951429416986745711398951344346885585722655189676421951843696743146121119611431256232982534666629318347963546228432623149469142837858622318917958628819549881599495211712571873134811733437994849772128395479729398365162734562874517736331633182596691317418334539413774868222919145776563924646232387371794589942371331373681213991257946425227996931281427686255734485331994329551638546158477825649252556376366744133874124369134284374382639142624891362448598141568522725226151612527318239669391465379157241552473414719579318293681713133155255295587144513247256612925634436341546724534454287478974277624383468219315984481695887526182786597188951935142411974259198114161993173328284366169854893931213721975497782662745634721218753859674873189184122423764289971829719181233832482133337423193896485768175528361672554756756125729877556423545169637121315994842149411341386892413489331489785477674833182294287553173179132428499813229732682935384643966889224644229181384458922221635653745928477239172667541366685691897353783962828278222441854273816582519647156674543472161491369978454443615596612282512458717877442456684831742826326788844441974736847493695662989674879828171442927963779957852647938353493392521759383995653632588353354315593738666231386565978953849291417266554664588563763552281946314211611549832297137511185867385649688515346463783625329231737412981678961626838912527341938894179871326451339812543634391453123691811833121241122892292942922965631586432443231277444649382527877615553754416629358863672762714114256281166541647313243469924616181144958498727674816116899733624315193746343841121188163792998241991837399141757321661786188156784765721859671457725362299326323919597488451288178687585887742766535348492386677379268413864743669253213274172558698348174776536617631791284165145549972131129948287763663527548615964462335858733771345195443325278818233239835236393928339367471389186745818159397119887966467255797885262766185371691542951123491629135668829567615354189165762682831654965871492329353514761689471793883117957676241594575615937968418143125253639657943937594337448349736191676113348278538855447526619188615692666288114149765477347652933467839553777183738232718395259347677851353556882964334619553679884291573138119181993598748666895871818229868643853842925717586875749511283965431268524431729379979453159181142735515916813355695489787959978735715334315121652889445613218359353687848755884914736278297857828766931346536753892729349795356277992664637174493674628472382725859121136988482528541714259856763759687459271185356316619943812555512939872985672334163859234772937247947315381279952772357218795518156745746772847791723513246356562685389229574956241194423652426395843455955386125913799648593842725112135739291258388165255175187675344919829427973688516422387496861225472282549944344684857137668853796869236443825567913412232426235248417675365144666896132331378864844535398464826127417311131221993538417653946953674472613768434531411983271344724255881749411849662462831643638462564936513635327867817543349746299617388134257268273822549587729656721623229814478332267437197179764589456677289454987194324558139545514657125293566794325219962112917383542521459165311336113974474922128753819691196775177657234445795148215258983325733643713414879233783282758459969953935566721161947849136233836857877913926214668379862188248932324669612549735938922895823328942539397814342692114831239215343473814454688685715723472242117248192913397821462173195344767294273174325412863196584742114712514718843451541614459998376636951293815653648992319771865658956374842749367921382623914129533964125672491838379244865253558499193259424923672615477664634774146785589349431459846732333415722813932941359542741458264548321322472624373397896312339215756784492486183548167574137184856149438188216553495113713546615975647575397175566818376773437825663951248489586925599929856237633916721423277713452473787729554295372141666451815521742987819791448321374663656468936823621249286833112773416261458467786552711662496119481565416698588139974737125993686634748461342744891563498544694977913112751446735584974153534578932965551661143559926728756854795458232358616439289864488341112926939837932871426723378854745457253385133365133938226818256453755797656556646289613195223863575822974173521551637838382743327572486773762894587794624165834746698123848336644478716252338996919599454843777993276516885459896385614157287663514598112399482559145467597292419891814979462469344363324219164245291317582652351936215652319213762834686453739444378979471177859425855771979265471319523276523397512135185277253817663886732567246136828347841171816557473548412841412615644482682919475344629163226711538571718627655512536567774183245151955578245362969118284679699868743369424433695472297842675945641666356149334118183982493717583946795948257585485681191722966319167645343946981725622138611295392712559378331747223525128829677216598815218454845956713234583876734696856873248261314469771729126978268152928942938668157725537321797573686141849388638113435334328373245593965219281375486629388375234592851928347711497444439888326282746719753211824568811786834576932246172246338119352431161879761241243261954384653364257768248388928219955246572675475378811189697836551881181564574648315524653939114216196939953144978359518666691722317255265248642487418593944771284643571855325735682272899363771731382614732775794377951698422112828791657326924475725481623836491151565125452973988818595838867155232818254149987568726345291141849255978519699752116373945231246375623982926333771849847817271323626331313283164735257678933259325949368517269872134333615284276737979367788277331931124349798414614637276863425382852173397121781262225824637968851983381128659987797884671148692693767249885657116974532596119598856695437842285199321158291423332976557582771792991529364794337855966713313312763535246648792414943183174313123188444138264233397625132141586716481131934245932846918338263357996856246879265799595584963895797322545133285272747687256552339656274418365281429853729354283399795133571535798977918982984656781925998283433125336154416384744658251218618715543862242986459641497135498458188123334445958893276597234385865826215714996577134427162949516882619328219757874743813478424625611549343237356558192298737922726912177411132456135464533341862483534721715336354422513554122254573532962716313254933974446543336953723574932656397175674778275854478461424523452846473611592595442577188647253733236277542173515978181733156418115289161552675842749762374644577846361714721882113344495743461179863425413656711379971428584898279272883811569312561673171325267114551535934575111461931624683465281379247874638879794179154454198471896589656289975219699151417311986831646664643799577414385942378644183512644556392764521142321851166393314573663274387332884796825752953381263715724866492748455177226741456895777932317814852213239396714522729126153355181453671582948211165762424855332732948614599659418542819962426437876618973643674938811927692473178427213333472552774177217257356947917678235352421623291254253293842172191527849557886912974829163336533321233618642724163156953741875862752825854984785525362119113244671164254884895594683895622937289777698661195362386872864663533766718587275199294585172511468574499653274392171422964472757325563337655614191762588437563446436397285115715397114234798161128484336115582433929233469194638242485177573919289651667325461986591617738284939775923316249381428937243728925179846548597929417836956252212981285795989997711736914258796616447224519347759827763872547321668882226477323186652393321328657424584656212988415866834522493854432956124562612826113945562985882936519581658577131884934389491911941317865334531355244423395425615555573454187965584318516941499991228521259884379682978324281426526373315973469732231291771463548713228465556717151586143869271222353278881898423253239555921589194259959211642462354621463844395212226992489626411812218266578453312981336338162541645145661179617366193429661524391321915893232458494453225968695664515472748541459314926472361533749255861115925192822482934862286783851297913858486653942533793529496641948154242168812916984495835376337261291397792871351713698827675181377911136459519768154693469135987438137615764858119196175283999381233342382317351913223176292136461387341784149178561221533996662338948763113489961423691782813283135116755889284443883267712844288723392245133938119254338841733644714333733296635647593963378628192534283562557552139824841122681694276354496336917416361243755646842612314819346327916482856746966616257634745868225796176573644757869658769951792978998167247535854966618894728693449737672395327214474432417251252354425739433311126597938146182344961812141979856211411328821991866619328619229347431412254275799544212762998875419639439575311856869153358464473359919578536893429865259435881752692111919551521764133137889716375463758182833341248378218285673523367661578177376172796319352911183846229368798446484588595768673625257752629637661311426367478995298424489652812351277424367122413623515974276153731649133575646113519472365789976289354391632212562645638496298429361285197247612182771163337796144692239367752787177664431551469417575415773239651367968386847122759493111855853226949615134848613136698413911329132828812524467242826494495474515426695522595862577617778357165712172223729197236751562146145949493963372775364765992921445652431348853675682475116831548999634445849536599865354512442451361148575646384582264231223839384313282452236186291192389885182126129431599799316954841741544482771162621551184222682134468113144284839515145765263153736837771569661896423386224558485135737821492348239627216645189781987294669542918514321247188654713421178314299919546556132196287263835746842677723163613674375727353657877532539262967319725393997446768895983344331777673645466966274763655211253897611274247542953893672187239393242132653746225311675473971113612371415425974616943214497966273154189967512325429778177752916584166473774395238944626129478266381881565185655143232394591224524997328175157855117195595754943337819496731833121121684724374515515221497567478545659397962779133833141282283414837187634119452827775713838179422369971547476994465916328749934762135586458565471538626273142378681163791286782285748437568561917832521542213266842419191251496855472152962414753425325647355361339825561725644447154264957178418362578296572911827818573925684561613667175848861837939699913613651497819969796552613116726882971449339466616558324661357796612113123268558377771621917796859365444391984827132151113955869648916195219993146934232458862454961994533539176414531644771125924993958843181191416318336833481826997971798978596695337751189391542444315871322826449673552917932959386181267884892621363443812181982244634866491716159857158989112278466533377938395977973656567478683663333214437394918174293437856351727925724281683316562348756985845427961249252634221435487779455447882953822621842842575842174913171194494553839228416567427442521278172891252323439138179512791483373686324918585825286112176759865458959575945296795544333915362556561233271156867714254783421325128918479595421842587353542933122411113319439849427131224924612339523197614817477583493156941587191123666529185734154811362666429589745845313355765534418359315692222517437979166665853747287392213337911914719177219815214928336137784813379989415123368633173731615365156773725654587333539878257399965439289865693584849397534854455474664251211124253179499682936249221277681124549369547194599917261351153233835129361513151969432294612452121897685731211348356466541863133855681164868897537936539796179551797641369157781341271552926112914593357488465136791445575435321249333969362767255213833174632742713447384471921856913562985814299517971943592634675864431851251791569469178732271525818335838472219956361883163355766561967125461744633273415268291322392575678934147223323184491511218223683267216867176495271944417336145474131933674581157776131464494795497985649815617416259777187947571111218765515491911246235543919394358214442947384352327527463624651786456643324586252551222598394417938153975593855631271462658988665986211995712149441126312189133179857585434383859824731357265778196776465119455874233392344347526672696452572151168837832251741569712874111477519772228117941325733811658416614218481115798796113691591758381299113213172495452822989665933248318874588739147386775854645517566995497922842139982289134684345222515276954671991244692975438886581238297378994361228671392377451165922885878276321715459459667951546538123499574953941563712789267787688614499395314426894265668973113739942715157691313213216338383157314961241599315693494566194232752822633791116995631225781611858325887442956643985139731893534111958755783353788634935921357623879691111151251613557835318642375387827663559868249294837519154731186213632824757547993997315881278966287956439828349696317644595796654386961197936116925273818292133357679251743633282181382465348622444594274457993657858579352495152351715593866483222656956478897248551757637554416451711196537424435939773638289573335879796619932326467447294141489891237466561331359752562491291544322716865277192387536725576247837951521148447488672129441369527793485367483542453462316625693158274382193816194793924758278595474285338137725937331294119964681537928383125993451574242481438582926392618837197651689875756598966653155457867263395462356432998991368524231888435333233615815327926656462557465415752211621495115354232783815882575424921783165233214148924464743658814699715979778632133242813923688554719261225816111566935514518193389112491514683732389669873244536875116843352435456854657279736728649821514218723714125139365313393814259348766772826892934912175648924894673228524952737289376938271346541676678493121277371659117347367426834325479523173227751772253499516484664744882319746325197775484619328813232532759936445295891658144822185746741398793236267249613471318661836127269467233337624273655213583975175769265972213522944693558859654544512881928367932837911582654574923673294418351229744555534756226569911127195661225522937158553342311257582346683473394636535892386417245611423124846945165843856732311561116424726212595774991721481363155518965462775493782911519676143992872234224231566392563374111459581596447531772463297338223283898265481166692181933626532737153884917298467195826766939375671315429638827889174246512149584822874647995494176938781287317511765491266651687395728466354823373485627956449271113397887524711223196269142899752759157144422474733578888241821895271497124948551173841156993559437558245427464868988377115571582787151287919779781473763319635149682983519753858827967732358228489791468176432835195477159372474432731421272615627628861871843333227842969364871952265611766211428537866558519673118373341131138431828344731296415854517532723524927142699444759823471261212159784614799148265325289863385521623189351232574815217923612354264291371812918331291855894668249276428546915256933473331886827546518153216175696186253553674112937235858538918155549512563694295724361745162722263446987127744685951339499785187437831638924525624162486863262771978187256826634237767479789142878656495515655792884448111626259872961188539554469115357277977222752388197727633511211937472692496478312725969668841242726713136136491666797541386756268647997541746123452348315436332268586415215538478961216872169144255181613762231228748956176855575647494397443297483513137349157934271938725473989482667912853546964731712453934493819744174881827343668222277847133444394542977566663964374452852242751652483634274771357211672317317161266149616426362668677763742313819492711721696454534535869328558213187883521221452586676182256162349833988727813292523433162217622596876713563566773348683433872316958991543245695371318428944276741416453757539836678765145587794826515761736569389713415124294315714123151794876492487524365862277165949362666446564424724312559843152492692667945471843775545996317641799541481983699371171626273726749476956467681433442549351662731225525459788234464591197621938591594942167111789293893874832338249251736997122195185429374817833565571682376751154738378411616187277198729478491694651814267495921369781821323487175653741233782171246392596237681619757654368698897235757243213571247491176962293424869273584288799676467162457994327791239215218352753776217341645975535738791562466782953238854151318691374581612692716458499864694975715532765414543657626845689957879876348761348237317376882179859438374366744132774326416772464465956644778434249343267767322512275545257382814567874195832373864313468274525425119686874446584469219549923322483493962279317159484395831148415333622916374851958164297774742384746341529624767529455422534268635381232243682198633354457515717421218829117538229396918294214378863378535374294841316278683662416771966861198927455428925126333276485848686655181439995388448329376212762285832281535274541377351452272495181743252648253134398514882552843693346526819589858737718674846797216923715448422839443835126248227861325298513175886711426969385657465975327441577471751686512736243256157435528779142793219728535586428363293422451534176323662138962582644119136799449629971358522299147827111649464316387123463959651139256851395332278778811354764666163961522911814732125744393563149498281891821645824771723418116982492924377546527857132388522765164669343559264287878641253854523216935282843842465867714245285357562319162151632629858571974726349645863636658356597145174372285384758155499413321688831913713152268552219455623766715196326792139481231514431168234679187418162574329134615415551452899974378425248225537455144654921272688249352258328435282419216838144674448877372934934816226346936732178748241536272682943374633235317693118942662885843671896249765198679311598542317537418212662635466294754381781317613357275181763241459473216135577643237279923521971726796999756827522694175715261359598977365858254612297822456832627487352749325629148352976936187553543232962456275945318576787541871131518254226124649379158664746244372726617563557632412458231893523156188883429757542357558327924231859483193412386623932725224528216184494724772341869745578975239643419598399358177765234413797167521217932452562467577293754913169718626791949271738331843731233177183612166675142653562797387412579485474128622155393547494683924551737115477142614958252124919312298148572246476592962862396547418135446111134557444889771331311759743237458838914654531493681281195931522979983345552567257452376214352531267771864661875668573471754138738654144332272862172129359357549854698868837433336868981598944874338122325252425482322358133933877149227954789615637157522688232255528464645979151623651434739933881952177752246493119551966826363585122184836244343926793932546451943343137882528243957937585667117969184381649866159131271389389811337758251135275752518693326768217657373424153385641785464473431182142172254832682735986436927189486126186379184413844317744311623482988527447187569869825886234438528171733178412583684224112686775478691523492346494917388413366717632832627226268751836854234615219669594622568259189449394461757635915287845419354573823162987854219535168372177673698315431119265829635214713571161817634513928193395586193223356493481456527259838738415693339178485652638353322176831915848951264879355884539736416747467456279663347187182743952313853349786768911584749147678458389961321118883663876745296533862144261899368139597157817291842356468483712525895136472185443358231447761441489596537381264139181912352796691987847914339777246814559638342532744892171168185186872911263188799571667947531732789683114567575866464147374621453232744714786513684735737818977278861399814378646422454534116311294114385176362662832641221756582263299841914643465441575156511882144357258613854453391721629135529352146246881334543145553559119366491628539351749853926398693746245549916946582235312145942929241657218113475665894225821195598322774536273433692351255758599787843383569719498695225427652864852176579436329315251258865526119228534279644154246151776978159758261835764763634822968583111554332765338841593555716545263191878522233115835634365879883491817957137583812518174659589858822471175171151384711988954691617685166364529785159417169376942724382736146861856323564972713734352533767373647712381338651527947819554177849651452537635729526352835986336318424281823357598538448285765656332496855311499353133159676962712861722943236915353333422665757567822682114279958696234873225748832486187928382333982745493987886577412332794167893122648289169931725153547963783284423141259889754754448818247194716493587511111538792173286853377246555425353265927372844613685215419562432819422632265191769519722793189792444233771238576133272352421844895877525525951829615541875711671741957121832395953338145412678189584685638536941924541213153218773469942935753973377555774912159349519743317658384276733768128969321683328819326445843359872779141297538692414331263421259555635735398636766434421515426359783563689777457647991265399873545694231262591234558487151599453817595832928432945128453397282156577121978954261677263382938258187389996453581757133691753414395515345541699514727217646921945233741263871316717268422979321625767324185273432152228173224743943441182253836917294511473356172432532694413233827482328252466539179536161325741641154641621813188677868443953147335712147635171112442432264425182949339738591353985454882865299469424737732314417525214179447226521437781643167497258468782543995843811663472923612967182661748614973186289227564321152528747623879921111815282576812674468691914929335955837214312366462491672832561934323322387766175393279625541611767949487627653198851254139126496339885389625917314767254575423267454433667496479917396425418575273113238715657815314126419353438834735529827212146598944729394621371436749725726168625726193593952684473731386552269756558253979967621278527369194712616282222636167564443321712121696441987621966794595441662338354255976494751237568874471861533338538357477194861957997788974764255669541691791842586734318771911453244212359311718711556434934614794115869858542949384997725119197781798992911258384471415542249164424825253147442684116444634826914552127169214392595962613865381536441539633239943373433956569755796349167398722933733987563456611976345368178262875523194251693195465172386619283585337642217492579934376611881129324366344643557535523153782385177115617728158947762938471497251125989263174472216428994325377681711324725546899533596562835432133183441246184566912569742975156742528298285649169937825323611835662593759747681377641344752784356226392831878156234293891522645582284287573385154968389528644224694354672262262941126112446673442361241455374882938649272667476254945585287279473498619283868593123796674661761855177622445168832328758159113734237528654837951813144675486359279288876251914313438229931625143913546216943363365263135456399823582394323445724671727771971411839926261281893549829883541562118177753755114888115461815292954191651283499432922651326768558922476175562919197512522941622718762867392658855351658653317969223248188864317322155154766593612313556412348772367692362846879623796427754218833877168497569425468528987212918772521323214179944778453182442444312239394363558578445556263328567674168731329562764481662474125765472446561316866447544532443193315115157682511981597545365313266426814145179333263743723361236882131262991244116429449824763759676354856439924799966754423986833964853343718733269599357979192815394575843673252564224571772559857228373889275976831184925228297754969353493987526593664512728211395649441318888394716321851822333161442929316346113366211176519768735555655638938674872692725777956655146372825272827762428325125477943121798931176173376185871353136594973685754549316333119278621941344276387186766246285552945497396742133497317852234238757366613959132511556633246967283244193211922311848812226599816523495711544948246767253768425682652744669589536924228477495653536995589857986756244711628285513394884624632642594569784357738199162531548265922949717922414447565221256652356336332335166758735468652598936367525821386947558289315519132948821727669461236199548145581288985323344548397851621384498616454594132427263725871986245217491952453885475925853793967663136317935231714254217677416724862175872225359693125963138579374991723358918226491439659524933161357219982436884769577191234226574235824346167289287888253829539739496126366791449646855335925533365398311173323717547669383785879878322487787726334121236374551182673874222552929615221358483784128618183255849247391985323129926484722991661798817527491489776647743964354894484389593499951522242497951169414539571561644518353441532271885624547634327723383263278795132481211634175753162427537982241397372441334645153611664763318968735521369733665132262881222427151978338553923863243468151544923226695231861461575327143266195841337476922116475221433143313742279284678646538373422634885214319311274823471118831933888628118477593785744792462369331274539393356573575431517175784558299246566595758422266753116184918544524858387449262513367721483752428355513177486433569621895233584414875258546475221389472235936426495514448428365441758418253137783246912969818816926773357247941621153758944343863385984737454824428583167963685261824398394984648366933477235773938352657756738349265325595531531827386217767731913427133182234243445696691741131294773336612593844429659659111496838939841843551325417627549641362498534662692918787981528521334681959239836155991966683516578658685218742141841438158897672795171491686544999913543277637683394721351582564463185398751953397379425494336417234281567471447843823998486949772721857122582168144553132116455822633524764497291658178692225673293128365633411597596641133484425573343595847342493631532116797292843691117219498448497826399515613529491433561993783172437853641984144341937438333947314382932188822387527167488645842683638272211347811775295551593199324483439216984449115751821316923338624914364972857588414231742788594158641582449176754113553222665365338497275668399997494875365269434198876837526968314165151645934242754222839492819796496172713969455273965943779685316794689953947244728642487987432714959685695218168734767573244854729647986671155283524842821156123462663373112178116928737586142273588939948739326861694914284274213537248329769747782876978534217368923467622199563997628168728289832333956373759962932627461465481493741671487471258783652123723331858164617447615822511336786141421898485693948943969757863136413313297681483267841353574326865538593521367855922313577553751375871373674118343197256462924364155787127245296341432357899912165621227336647766373317177213559834378219261651229765679144464431612124345183123571245533781776856926869866244179213149736552995979434522462162269462433585772544627451835863414192143466382326843276824863149278826587758755178934511852951885696243269894231772331229513378852748446349619772871372961661419918775284448586731253765662333852996347415464893397932524772332351268141129271497512387687789317762714638952167917478878259466854254871814193489314472717497579414461867759261493474489229884821294422211954865493128734676216466445568387296879173978129335591542688573899151975883169219954184828987221797145916389881647668364111535225945231337152638448835178124672151321342556774126668671593843932161521382466213262457829658396952235744538853894916457254365679579916663825918137113651736631652434114627227719759844521663192623852556432529192666238528675821289595319973317471574763727791263524342355714777477868334794294193695398532357713352728549147436191133162954871466444539679388685163481464327972812187551878641828355119433147886719763666236528948522966135954674238537515542821246113164389885676173838343594448251256111395733655916181411877833174153339973838736185999473982464718646431439713184856375819776995429836139636263357654733521867786781835349284119448573835982118517696692218614122761252215196123676328416149579835831825757263675183242955426981881422268882254171136398821376441211869759349994867148569862164135649692458451754962229142718411552669227315265331688568282222653224248355781224357862664548863875714169996182141586698368453959595721258225514278513784932339284349381985137671437948574759852712373999877323459237738692281479944558414296166563818873324328383366542648751182343336169656812327461485212355299178613812636261141191411894661555344151772849544546951213592968478771122283129449451551756749566485893475739429721994869623768162613233642856481539468925545672369674518962217741326134794445536738728226423499448197779992629726783337934954323166674653292315555258551245917138525471272486988329467293579451967549947223474673348322548424116216762673159821628941139738844833871511744155411851279391946788372163291231694468318592575478186182534815764421524335468399425848399448424679153515972669414936613412314718989645314758218933221864277164859378764296769993337364362958771597754853551426611633515277152155942489975124758668213151964646615449664833538698941964264335425972732959268276357912343585891282148784947868461388224773263191372656494997626253764739679283976412312496477927814516275887232556229588696787938763945278382267197723726779763628444292585192526744265728779437781541858351439376947924357694795952935579164996398956372439824192876114133568371787715461395223332841514954695796962992142569734395343495142146587821325586662752942581139865339955375271183711511736143754587146595389915654346288795785279876861918821869931912584264721268323118863132855215663358476712858245697186351987984633816183928375637294254661143969225311714192585774653267161645899556462554299425242719254751896914551638297915429641517442245852543377198596896613458276712532158615273468237158572825427948452449585934591681113966728837256363231294823463595122771631844314154485692277161314348319391324693772989279892246531536152881955988334185198183135511275162192888348996137552947296195138434976946277411354638231348831584326831873985922921995368666169692734586937713226853968317687632619796755547541835579326797433179222159733985777558254727785956352629663798262472174799445987678978323659794811354632673237433199159421425994751443611121764592964215128673689496781131744759122541135245245982168812192313717725422137492954477213339219516612689122366445542347218295984632619763247713274123277957126961886289828898852538185455385671227321534755553682243589787755593225114775141474221412141373368621439169259713646531426561338169532395724749186896149947165777118261238174578332821955161634234774599953631955581186553231832475173785136893337672763853253214492195349357275659572221768619674138894373631163387377777151941153648219998438811113141596158558988319583661775727253555111895473813516168274422867683118283417975987744214969415868337148573136272536226514858877555447422286768854555572264844587126736533355174433458527363332277199958781566715314322834224799913735767851285778828125976964999823239678852645681691128215559823655324939328327134132291272647844749594449674122544564147656257546563538691562741394753743893357389225234186437748248155857518332129761576189486856938953121341912256523526456369837174321628935896454418628367266723214528799188435939975443559267138293744776637957734668243516337822994542345775566394482663157461282599639692373441364712665367177933317655457464149914249735186828451743826819356368188455628292432583836981142568675835174662636416922381763484742336275419542387791324435226458326469821486626954691837197877595372392481855865645579731628885215955157615166231129767148274316299529888921712135691994953423623568359226629751759886245581359174872728677339312791496119245469321437438426617951857153997315732921141268964473196177747154144273843547274944371174466758724674661344544257997574387571339413999843264895439693931461519714142595577366958195947889756285126464155645778686778716433428832235946375316313917666656289116168418617221811599587886268467456557487964368415212297123952157954829645365714174323146821519445568526681523631214179629777613728733897759671722681425853682726874233593442319333445412199725674152214236469525243294638826313412689234341582245999331473372417594937776561841592189956729931673553313876239871185961456363992884416515611263122198423992869994638427638431722122637914471431326596615854311798873825122919863355997247473634491598767477878172297125115758842234773244883356513871533295997626393917353926237978812282329691113287823932996638268978539571594523549226841373785456265481251257134598719569953857399627954652126974372252549293117321443325132775199745322152145277839198586226324432964243879225185271572915912115888454198836225727816738133141698659855562711757782572913643717645464167839434114762524323572977154868231132751238332616841531713623675559561768777551224125516591355817813374512635349272625894796756771173455213162414587571919383129167248466645372338533771924177537234941583471566161645878226215115377146677979616681236919561367585713592331719661271746767192517455219479532292457696746283125887222484173665898449772764628813673843851289346868331153275623877831566434967354811279565844396988258989778333687123414944336576849992171497222958639861532539758315535477548151793599217654799796288691958389774548341757214752767719712422114125439469567723271137283941974668122976839359979692445534338286652584454121321311872445811485345678523182454427217245483371629595485346125169646565413588619138741651658146598921451447658148443191919273558624125128751665875829395481126835476643716373722736845761396316395247529116238379269253534465789418838169746839685142386715298412879661224352127618183644489149588776634286113613154896322244154346511979447267688159811385922219656528439819849926522362661994662997696329635449342964466844696619365625512754329874811643154953759423516387123233334841242591324418183376413813219539185229292327218635412156934439372536167375482843712563286152419485823911972691286628656229195777112217617711118419417526566382736957422264763744357214221964589848915549128344234537548633626936415189588624489553634832577956872453274625315294865679216921636314927537639573174287771774695435155831491255136792163941314414391125848374561683868535475645199476333556916213985342476212435477251314979262288656254913418713929385272818189782523693425613311796786686278832546688628916353949358527565867399387812711355124642653753421329557545639745239661334266564857151655947529481376651439999427718753562517548983653673114769583692176272553745741487376898593228341991259956411274344493713589712197351322433323777358445845273358668725544221594224711172764117276414155926383968811333998159643693667331416358695911536683839161481618356182687632771513914212779373443982318839397781376522576194251574152286624411223326221177415422953314185691668541515777145717431864119672245442223141217251779114728833429264229289537234837381945658728774973419942534281811437162432416238399666118257789641541348527331154259611135817867386512523932258976339666982221181666837845385982967757941661831632876592272252896835867248255493312356698318853626368312322657635468283251594476819444538331922897983365849742121473699685199933239488918129692152856274152792711374835866541291537677979719982531429215912614352667231252283293223882748452833217531723562826867661447961757233945243223146414991142654663681159444959916497981918421778986929891689911334271411261477631934398686964625477192188456382922815669714617586976242166173362379445717911121165799226216176611714179563727628775833124653637511417266689459359566614883272832892741917651585138113736432176891496692358433469484967434642789184463132164229585123187172938796755598179397267199344282174236455752577659222687584549298322637633664418645669432647845213419859626292483976628435388262488924599289472733455652926565235929677186887798846756785541258571681212271487987313816277387429689641244537688938289645847498967453961892762453265912118791526878427529797811342998844715573554543738886424116338937961974552358127835954287959766619157947433884177856171321278555923671211242489914125847153138825689237934898677419441316191938433152788513727631652413123998785799797878665592758418128513244135793199555126899792127726646619279573855782391841715731881224364351683375117155313112313827674955234225754846761827526488276285475452254128288679754781522392861923467973315982778244245739786597336856773291276855782217641221188658185251291778457683428328954773225672968453144217354211351971343858231691811436622474924672528386515236884159681774826531173218574697877417547236827867115489995916522735993225225683774421146618428342537636917833394327612628218711479187724457134864528259536941269219469715316293339723113135762643444185398227819783727833964846581297797979285237215664517162678662122875567185912773579535242341677294464246243274863732753125719526836928446373725272597751133667419933859433446978961854725841388233591145572216796136181164869294217165371132865785249352441685339158243883723322234474835667259174347259317315629993975717426356385528819237579212914759467223252914791927327533487319778313688792125873118211776473855174185566897114264174668365237391555885293383111523922467765566886397432275613458275849737567164462945253933172855873776442784693825267388592318388846942316634811583532371483753173593669232163344421432272529492922143593728732582939346935223955439846122463947241137694385433559511119196792768555997477938389251258375473528397822814443312611468229749527968811989292734426919224853336562248197181645686282211876653117284777279552241156535614643425893941481368969786155241526638141199358946592422633925767597681554792112896721352891521685278141188577821355682892693377713119581162932647367452787188292265939839755685198744723487261437413528118653178128278976863247611942555862378496371384748677293112547157392229187487373686278882345656831744116192384213563394714227331615162457284464391851836928651726173896826879937645166228173479414859293893331454945444167979654794748221294948424161382947143383853417694671383855467592792175829144639158237723442311574533721154421718859713577239472924481522661595188444451749894873124138555442444642474421481993315419588423969482648741322525325132366768963559799591479746633456987138781718822354582375552961788135356126453256766467744134482646916322898165219872526254586348335338477488672148772135812731315411688424614842495614845632813614857913596424144876259586345584366375129958356875872413892846538142485318761333253462924631778138744571343562376835166175573889968456482449167139394154791755621159756143151121916653513939378358236672426963678282434936151243194556283815655458449493186393218673459353179949812852523998436427415516599575147421959456657968949832941777865448787452543714262395632413757244496283988464348881618538737372146853184624572784547424122686286631944665529923845511717255349924911824131973618187227866232951281665215229491471359139853455873833345746965655498917963241952425913918385981212362987258324481272157587184176728293548325231846412226142774873883125711623852137551113334836681266314347845128669612813999173368715661399272337538948712312527167732517731575536211851173936115984199258253194523571654466638955477658833678431553164545995441639976259252836745825675289539596846714327525339364931326822137926681714552497225169678846374238692131366226447821883355724851243489966985955515166185378137721961448256366235781371465563157217519626438287362319851825894839277924981582145918311829871351116995875419797138441988596933948842393969794826965662761785584917362992177612851763168717311864315688861268594427639353395911562382496463846624325316635139143571231863569623277813372639445248137599764623423214818653377354683261757645185767467137725759854733925626825842355836984921384482724643628744787929873227485887885537562745677423839428767597247528984258741241888835423852474734481353384932282156573926317113351737456329797854446855937743891212852215717851831127846285428715328325362314779649821842893519425343939169963411851946114121565892328777163671128119118328445321541933888181671319779384461635462216848352538491891536255175224526895133348865621753396998182768655571647138285378779853975822647997499964598239946962385287199368196554616822243225457626641377151948379114261527964958928353857812761616532751371643466396969764756717191576945144747272784391589252774788741266458382287444955653944244386362833619195952356857962565992166121232192369226481338923146654424451173533379489531893332425187693461312327546766228415646772863674736629599871839766454431412869947443813436422819389176233652961557631384567686618243431344275272264429728611132534691786248979551258962321765856373746172779288687418875757414728828343184517661989445817736235588495262347925742628236861857188672346669844818392836454268482544724987396244526695465313629222844596779388632759748355499551913312182235157382196439354359693154346533857149731725775246419598812449213668871667261793135553947533475427364562368668711945661566992742735357993332369544242457853752785647729925954461186395422574346736384271423886859415158659215644269827451844123423464919454352928669539834682425389581549221362991343359767424418674247552452496368116796383155517151237231431291833349365444451784893591995935428784556157174329685729113751162127546932266946113495974487472561244822264156544764575795566254212476325423728865873197881574192777814595215414841588884145977441841772567717729597174494596411596881387662853128993131437899571272224688265298496185156772113286421248747344856286597258882539446333733815674346772326428818363556565318321136324814556827881737884232454815385948636984375156713344124566346448926259671738523891296763466411121955537652926333999952635231667487915137956364477477152466569285171421229321813262834349289824655472227315473478872124813942435153992984381499522146453787681449333342446937632594651514561367372444174686976334743194534285156522258328694547254142277874145653431391589218458933292272536865912448127183211116615113565726132354258712883227715489411132585133448239789758173331828671278114981336158151856757336995314828149718826716483752542333196781352455288571415699544382694829982129555258992557681582597196511164616843331652835641113167456145138458235237972175792783481339822999444175975483658131525511191938582314462156527228819914355251859633746445183159294238118759529862194666525456855281361399216924491284926571814628744524339926729434286693762514635177772427272931995352786628387338973731758155964323618951598637552913581748947127655862778668189782979313483696524825439116463359187196954512696574757546932931337969647925327644878596267627116857411884646744285342493865721575771729373658162887737132682491328649733427562339962233753764371862158884545935935715632799757247698655472664886679234238543141797297784168615159321393535117122771633159447563774615767959127979536917747796363784776255535858147227614355937192782647535119286899484684421798238973471649694464912768494155311482859329691648529298994414313447414112763434927444697274754611336972297785955391928741423228241283751148289585872137419584163519927355315928568588756357466616452242122924259645431825351145231526453312586798737669946212677623341151967125812564563569651883525282473252547771536318582944918746744411418825892142862745314567229485325936466648321147939968558696316158742383729946135759978479374368181838775571851844925386612844439833644615261427655324863224569455332423778414256177533223123331382498756358449369451863451143668367211123634743684511444216111255273526697529777245498478918844685973933671983872232351347717215466518257343896769369377589854964845552525715457183691385927945381222382624727425169941441995498359492436976888633316461622139571322942281783411642983233845812427727174692468337842939728264148642888131435362616993285494964658146222698369731562843447896845831521567416955874518375255344228968653787542476983672564338931231581463311438929734558529841654789471479737663217812321723364733666488346663963123995793493274661522225893814654618615711143271916429742225717964336894753161612555267454567229772578432241974636311894121887287585199832298125918778467271313369524453322343242558697412936523558446573934433774389938463995694323124733311133737455712248438199521342968991123166631915652557127245457559434718644181375443314821668564794138533961726451432449256451469232882192419439396912411192183351858381667435341692627439727427453828718552178434161192119518117563436316531658268636634315316549781943245244795211834475834932441368147636341367195767212916841542226954185146165759154455857183835531677814518977377173345272636292474581657371333499661742723782188928588313544658627536281364259586644445529259239544151994596891674924346384564774738867971664747288892622894572475982814344158144324112728431424469313415684334257253986749754419447136616726436966597674367843644677514294427618985619248761967771311673999269534225495587872859425327416896521716367324146234465893966262566681251621262417473752711923713614327966231221964713425345894826873784615796136573256876257136514594214932414293549183446572114949686537275743277412612422851533466542144677891467854112423159296552225436134149393113924522652314213998335663151411144922274834168927275281421125722538735988277465149619641398626342943629714477224795723678822334726429962593826464544896218685124895459237476697451725522472232275653259349681562195523237881826527766147882947682989323442357344953855248537574657484345128322843193235623418282322168114493423146619517383951142639441619614217568551791657257385265658716182491186333541428727427783364142925666334657735648646519495634531253266397579554552984439314343893386374243395211547451562355645428626621333364683991759771379726363788451743575618898733749626329712151584224559941915967446892856537611984831958644573295432381952332551715881543656262661113782155521654332854868471718894545882771279778514571333468677639382895784636614899179737543286745328337593566222385614676492279271624251914525982234457946875455921656617231451274498523627725781443472227961915943321956157573255777851765162432316319744176854394831128131795862516776616696657619488531884312124215228313192217188218283172747755777397374384478381972315865964525139743115427722237412199834945664535197111815474612753522721898185694438993681698535226917344932167446272856616138468914147231233826438814669319588627158476376339253783831812268552965799697126316661371378316915216863253377656818221543346395714544613399384983292453511823411899714843664713498164245792891299932178388314871148912391536225991821531476615871169443836213857359655596394493141428483629416826584131674144548936563724836811222643893445351742395785673178625895617415544614836788355594728679587185993364636918757366429448472151715969399638893528185572839377755988297441447382861272736165368128266913721948223794989288589321931863585676258884322562283732865297698729225543571929177139348848765872983881262118865263374756223839173191217389828394141224135118879482563424875749149533472444544998958796371128439589744743846571124146517168482195815438942187728582828416751981126478465694294237577114779391761666278143438224667295875326887493991231731348126811159343941646196917247553535368899439263896813176417362389366552945339157875393284817131812762848559449346522863464454364597762231934525473176177546655558482762988312628364792561393284918363444196935818994911427751158221727476526123849682525684563491789722289112287476377311386517675826943559416735176962772497778764435162734556536952398947181129573822827145227391746371312896239943992813216284156562253763594523592144581714231444941435294399243919374636786462551387942433574896582827811475775768419982588436262333999718712625583242115474961728621428124216495932612651367747166385467357613948432744828675882644299183838512598483462934375692476543833653329681762135862453451918779762317285835544727725321229213553244915357675417912913989625573943224299631353144383724711139255266733431549943379938824286338763559781693335643855926344348434253613347267396275253412595599875795362921196426125761198259695879515461738263258978823893141499415937566552758383156692381878241289194161963236237676785811516447646164715821523347794391711548729216713329472587276565235881456357665911982535598821253148425544513543471622581422424647782783648873388387257228733547568938986621844314845786947215836611115763123973128768734988764457625424647531964961589937832757872453583344929827875849399362537364381224225412796755676579717743387778584633785567943748238382928747966784832597519459717562531623768972839846611913238371739978355844845449972219556928112667284824562912262675154749221394944752821425186365264159529589851273782927243871834713393856548596225284192949567433884178742537211212437674692325184295577621541752941693166792444614735452456511941294532766262598561744531146691193349332993782416486566557377142421838486287951198662695692928836956264732999341639751864854169387317682616657231254494747177833159695556732732262257888292191822829959981323885139457135488351421111682152222585287648194792617821797714128856426371461868646533518437451459839125924514224415519282688597819959427143518479917631482815841728242332757613592462481519375194393516954228862947657378149291549614831739312152485893627133987571867997632451637917673771617783882268279737121141172367688864488359812149359446489224256887586133369294244969828773139665393964988682229365477299762127471768977259236312951159574688838527833798175564965581167288477962843763475692374875456117282182216725179131779875644712673578848932116183674115358463316873224633427964981688912567421814642956477656576274465982433997235626817696128151515645252834182536182974454892266783666475711848965513142188742335984232267995774437232286924474545769143555131792897882719632216373776119289719215668957262313269891537551175196171554436226237894379798934743286416114747295463728589324974657842598266323995821919946913433421581753635532496646788452869828826122421572671361355199762153128659446676924837394875874875671211843734836292396951725933659256514485845374528934323655512682952225522812427533268932673745714512561242966369647254913379897568363968294394565924717796651448362219191683637848587741679548444944157983864641396289837187852412591629887479978262167448814638261242539416161838527271827478756555613415578591778928249239536945473116485699889234918949893563359159372858229799859138121321631613966114834457325552681516682774436916846862497487427783359614546856534852893227327397491812991263217293865217681231594419267944821321212143256623231481238677233358437267538324398693256159515393941522766475149518634181897256718971472573635272532399984524613741666762146735434518858485488337373791833216211515812652166466612943433426452344512673159335247695511539765288219275811917241312126746174864132781348968685411796134138676267556869747346999678675744976452776913927827965969823733377427984632796257864119371933492339869582287214447825472369326482846288499919683842572765488343145641593975158448878312936132174375155728552123873151368136638621435471283773457914362814674855599458136485434498612323741842917584796425422843111193329121951755225123829283256641938975587338892749935931322826217855221882368347371588714963932931144185778955842147624674796776132721313992768567164561658615762175799628741461925819474553628286354175923412698623218435559681838877465897229367833848477181685864861762929748719231356259785925243974569796692213155291862416643284336429726221823443965334537358921971842592535259487363781219998374676915653583949893438332447254999178517714827442522833715563167139952362971938447352474554193359874421517519543658585792479938129813572722438782882349587625815642493416956225522695794481581431392638232474593813414634561867319927564515459743836885462962962277556339834711519745794613425167851896713656418287293256767226927445127677294293474148495235492822116223729556471122133311158175392239162454917118939614999926188321283896254982373933241673375241918314825823971556652296373537391418915153575323484758976311223966424563737861516431627168587917188265621231146296517541158888776715963358856828684497798563967249968444563854517778457346543623166386823916379947351952189763264392711836197542344762443113398396684265993615567615212176545252278563443364732776857247163177362949375928367826116783934234473291567541251274162926715745549639116149634448561912239139293219892371737935412255526521624713158744323269491215791337223464266773445155277521694397754388427216293787117116115886267471276326535565772914913129719132523422536976991235584562346654982635349659375852316724625851133638941251529431995657976624212148788254476787661893461619598778186361185754975886914477593254544126334766142976549271672171331525752789729396267672686158785593775552251336191419537535434211585526144345459392565966634527579218169993364695667364271983376195894921694242621366212728576586522565472574662551575872137647624934314525551249612869642493678885757516766899756453334811219235665451362583691219241276814248541488178372111122875271263399115697718353349674363118933884344393487933248943443692561493595591792273683154621526473111556793744842726275534753333131811742898476116883197834598333963141458818117787676137289555226126111172599951271937631465369795358367835925269811841423121249293912772328327696733543263541241641489815194647368166396384361412464933853474261711465745483123285343378936164153746272118495781448185146698988213373999711541331526652155847498255926153358664154584872313612422655286445312659534414769233395887638772318784538119323799283816237918483847145418611858373277178272183817643297948868319583728952743228835933663142736495335419431755492465999516333346377137546887523156966429599676288162668637691111822785567198421918529543179221863732163269672429313778654424451832251281637615969218123268383174341345631661996163198757888935813768318496586996648556187499981968491128116512622242295389285581433352816211416211966923726368181226374176568268921694628728841946771789786121976815717328969249999694124347961362117844971771513223916881435217447512158777591517873645768645785165738422114546513539145217646158697621619262772193494214675517433354648131996572273296289734791933858656264619861276772971568959918142939649136595611319554264715562853384885268284527627546668511976941163149981684874296615921471656413385579554486521438352924642992344935355185923625686489431451917473934419992969341293749379457425871538383293683783623662928847192388534512917927892374977565959757737445344531345485177872931295391491337411428829942767339243634935865545547578171725643542134982129734867169346173969942121196335886952217677253932211588144794385671821259225644128762643346119855464978958572469179134686556696571552457813429386425144494593734388318666915576848477114376142227255154831282676216665575746486944562849622697617323375361814853222418539458584513422336663253864953468513929433877134138449114371347911781418467574152611575215397622813617325589312511272844187841531396489494376479519343334545754515374292373121789558395631931655548719132659665697739662839656421955324398733248514575573294292245352156286374223683732528911797323989147314276536726149712817972683282386731511423833871953581728327342145981964168513598242154846439914424157942945982935249835364125456568357158968549784386764913297298328177531493944559128721876286147254612796799353349834963917667397989455781711199368144195921618362794211899731356221755817132189474749554112932643852974932992876561341486956451765423874181186123617186337786784332932325294852498335246648258432585312672921634717885257982387664246858479242733219518519856725663437714226736651732842785832671136961849698791929554523365612194818286479315547682528389685211237966736267816845843659363365912368811374948345958891233977449348786548432477943726165763956241754819296393753997127287658879296746292144732638799261124637542967121674282673248711363893246571448442489573999381457866393128497611982592268526733937161153331129712149118892583786361886189476883113258685625267986745647372833773954151221715489467656113823345645546747958872633754725916826751798666169697185467991997238611957787977462998334795557971733938998711332495253593681649696881812573261157322244368816948295173726524633528576216724215142327873428492825292929954132339242255911665412184429337353785135824723567917924535399452261314166522574178635161264676141213226351526276617679716512134681535673287939723143836134667811883196351889454222626925387271232319914558213475729951431778635322181496588633653142256984141961232432937252697216584239542743532118681233928769543777463832216569315416192477117473774976484992259424986173285119411974313341117322671256947979956812758862737224461716823965161243487156241737677648595925374428891371651241518969793168543498514143467552292198418718653229674325879812282986281993635314261294459121214181346962216235184333547625141431594423399883518417918777442257913769239435942876442958653662943135965345271966832835928776818133146816325247882651827435822928396176139494738852361998197496183943594235284444155158734855383492416241684687528357433518437198234649555312255845689494872199795588262867532281374413565674714988882355246468476714571644389196255627873698679533114765742163178684584865241738986661777446962614624561665814225317962311192193231941831752592861691553322891364668314429519346761448342131614664244577452472734234316474234366211329216238316264432694368788672572767548297159388129378777367294429281589343273812419899587235657181998679513637514132487429959466539747134697216519171872417361347718225848164442663528616478812485535615141454359249511466762324128255651185888245918632283535984826488796674261432694632227488362525163841555273558859312864415691885411978524353878325834441441346281658158711653862624895631757567476555233485684897866695243825163772631485628721974456917733182556936673371891532246772795277455845169452186666461324634527845223824121426431952448227574534496746124626712452428921513644544434453335291642674835671411529371518779528319566123295936948935241234548948725738952682376156331629261859673343792145655932298959284739779449165282951115766973492819441124223858785243554687492451851468241649511656823631564613641579453234379183623716668757853151231828977544895533533637353493245649849543174156461165368218414563888175376686963884661569223374632633848573515639751733648531914475166653814711225117183357783444726562668967934126755914759964662677663517112888441458551558538419426815488858915676413584523287184649335914425618212536199166358148556855497836236394682197951794359211943225165594219434482911162717423264695743625977972831582557851381782247496483449975621172268289424515976776896183826557641441921895237374769345883747779835213936228433578541786197623421819294542822725758154335772641112778677642187943323874955872645725121551229427121215322935587123135856765484875633377625137265121741211546418342777685451351211679173748745384741721837558815541988976365657566824648231598352938954314153393273354988524687249159448999462583862152266461329337192516532258596962423828452176378448534912393144191337249618215283298891122835511916795933937183879123396416337663787391318833354357117853231551922723351284456114577637595955537178255741161439324525987135918162189563384162848913985318646777982129527222751875535412466685336214163564395867518317586168374772461639117568392282712461268593451224661854245454342466274876587617663938446764718861327287594298843511352892442164444295147676831464166977772427642343337297919752189311915662691175823687835168587625461813716661362822484522646428843269796649224581237376114672363513947724354622943851639767943398637177755259793433742876555534794785365451327963145813993895726789247351551568359484421434376447535816483978478924965158466271638673298951137265487637772531399212395743918917331141966534795373383596787325512853288143778246712499187891349757122968657382262321882931462621632542676977134411684624689775899369995957875633851158687755121231687688532886532611463622188915182592715517458317779838474671517341735249222881266887987567121328776635366265289314557468189512128781172562778212689396925665374235875461318385224211935771458661259537839585668258591593578484985263127162566429667928791362227559447132737994836285879399866318917561375928385569988464884681984532314383636541264321945167752249243822125115136235668938211775786975276927921433826981223539416159861765676431116893719918321681642979163362754667664743441549453711255617876745198126311644373436226324742316369624592688549772462564833462375875713155937521866621432412937917439277155444624971231529699319677514628272792864862363799848691968329314268955791145821526835388137314286722415613888289222432133267816578296781888166198361738343667647764811955464349456717813649235343615197925229535393437943943396954878714187532841885163457966731558483892641471519979554294345211742198914478735523246133344685497118454774535675829434251485298691866227227218142152297943257437225112611357812672568615667135455119837427486948411858127327583529342329232811121514259352874191633447776534227914469663545667565986274964586589191318444914441433669953265449777717132459662144858283325522775694518524947624924127279354477346419596697328849266818213518266113366189687141283617573768578367587158119575971899978167865992588396684117224855711923762269922116673219517457155677561827344155833314844531531776471495683174855125424474832992626326232445399432672155338161966724912519233878155167434686325247698313114429988457724574257552726596968285239471455165163768199596427387679387149697777494423125159943598896841139244227187186988726288385416745871559843865866246792764214298614597726399535534681948161938775143518275921924283216656517421627453396546116489984113317814322792341124684649988971831134449991155955943227365427897583981428993665823121358638516654669528259449578322734327685715941877128643168595171284424661565947387543385585114335413563127387765824868197695551656949981169789154523271381418985649151532496717285269778686258481165852435896386959428272831545264431518997194212373739238284685174886476423358944953583659965542142235827497642249481552574531864427475454661668125958848215282489623155513284961582536414794959848621516431521795824494462797921817143327596454158467546136295877428388523348453359367863288829664692437296629333973929546919452745878544846544159568693415272432172518366353893634181766645231152238526381351882386457596941525552793384429715994343396862718884493443341485412436335585742997197781393732941662719435995441598773625582815266266186143117533938877469445891914171678498545618638991977555942838953385719972661651924672571833336751853349593327963364483511794875135337148629132399972819999651989347713314733244433912918678255963932472369747657485237995319981132753156459115578794766485359956927592527345968344181683825122498461543824214236195192682248572191925464474774464499923754973681636917536445969262976129386236959364146758345271254356983757649456252116486153946676646684379212235162248749267532625577444544454725418511568952715726733151563526154322342545328361713238339429865893449849917791442596511494748537561113759499184753754375467174515258789214955573122982853628127424997359968727558712897822897171514749629388677621138159743149353523318564452223372248439299832467249765266666327916488491529727366358485378641636851114348642434624613655986978152624758589785114219731335724212933823891852487441175122247389853185523268722755125648756963167239847649267411999849535337862471143689142586683644651435929398482765383594399775433345364568182893798396455141746876147152926614838432566721586212237722262261193518526176349914919859216428632781359459295171634985268416432539389454598469674448268858388841516474568822942843416359418542558591467265793518616364643357295981223579766567346593822313459825611492793364245684311277219159651742739636277282352744159458799472836428314534289863516385644421388782391183315396154391189552255426958736592211897274943143545626778382811149313535417272797129233882397768839338715613271417684744334377175837667321588698229716422883313662138428398391238337884529955974716881552112822147448481439612982336515496547379289523419565743375296814942691542346432481513422745741276541521982145954558633542426965187731316227228831141189824424848749414178977898957895585834539134124973562769693874648891846524733262383981136823416822486894559186734796845655386446498753962554332136252874882168691133788943452916424966623169355668734874755669659151391543447938293745936676675697664295537396548653685732615471553613793132714186154149147991114278263382748719299775976993457419654544556868987347827374532626348327222865136655865239675911296959855115974666961679626277656513555579392925116632127426625751158395627518598168498682494131946114749992464288151313221552476565815296992319914228242751117782997431625887326158553386511711851531933822715448642552311977625545555696985424857446381638835915181793437752453516537241525312345677735322743126625521974321679273641231963242261888592296228425335537329645188571243475657251295613597932165422661772243754267658139833695841688248353851929416456246368831357856554672382546822325525482855767298647538547877783692772886984643846798252625181232971395985819391448562928843361551444439127111236594735423313127398874863339468212959153317177163643752461956514489774599577236617676532355543784127127938328153751118327887572334812412432138173527154391543356557273426423751141399137266634388994246869814872997429588978448857867325383933262644192262478897784758755557422235943581879626146238986981512975787269758136164871576814294633546793293854191714897434442256716972612587167231528497494862972926729876262125438345185792716753699784137469345147211534645996821713816363835627776331498427314927171121529113189792894689258575412562686897268669371589967658774143756573619339921975113785453299979373296666712468616222251363253982935141439259393286157932846274743223763232271477953178443384431334697387467239683582238951993825238784311741682253653844944972727275268716339969233888169995166826793924175747639452179199291744792934675284612377971864874327374358296558464341219117997229127118723122919655196986641153283322371822776197699754539822181751598787454366333114991892359889591116822414875348556268321199551558327848627356111121586223967634338149581867481469458154496313527783169243132463793164164298568289591494385194195284826971461367316729674153727655457227132364136793765222127772598862661261161146144197657567271117963271913536153471953616795279757179153326512471337183553816782471157327537847138986652929363852149121134233154535322889758735727454338819958113694982361624745142346444596269597715412858128577497411557975925654859552649421856153662731954777316783794153692788212699581163215221738917887599935246954279878816595395249636899421311759374445426518657532647519182176737975283615781222288723379494237426451597973365215871542241925838259418143541369952467211395862932674199495385414916727818578191625639699926348478483736351383314348639194988877999269942612437352653231121151992319336775941883866258593934596562695365834867885442979388429892117312398951293574352675422381868468783164778243142553538529335446285552611975611148348125423572891575663857212146543182717545899231463963688153194497921392418822832185249411926351157286346763454284891962284884881271128115632725398499459179356948289881954755885224695617611935833479524269524429917728655835216243943926345362269134123897389226594498935978118545223161693714399677839743718643134373635874984733146174422126765613236633526496347473665875632785589934936148814844363537634356324813192776764626865511282676626535144698549438216722539185893175762362276352867282475629696435776193934539946545895346898214473257467515219353864995491734548562185656513723161291689566361344833778437187639438151127432753244253633936584321546892414572288619412828859916996797634744536144853447944546723256143252646572421144935914318632864233721865731862644762142231361133515549275178126185369797691263756163431186659777281456156283713533563116998972684253856773998913137445833915237875817518822519959539942633981515547382928729633739887388347583121158681631462711945362974195947512467229828847721656554483784361383374761383245448434382171275627654812743873232195685925732526713227513962556985887469462846493342714992895263711815397231965965654154877972941675946379331738426868824627916421521179117967883697618796835782542461714498471725461781747724184279348974551777793179221427579622366319592371119261334979243325932159674499346578852418793783173977138133952576719781159422381922283565193748431643285487175785541771979893757941666341677657826748878145646985161574745591525122757653859537651412139313641413949537732282165623113962633945746693873371123816572893364114519587154611244629195632977814852658993893692615584648496913551641185722513188851792217247377959261791674341875572288553684355515676733193961775838799423899124139969911837368441833387152948143248519433937782812331739853611177929335859566478542715323655958634979932689331381252166499277363125412936133943439177168188619365239344819765885268726557182891633187298526383211852956397666781121942698351149112145244625157481364491727412179818961845282547484432244566424221645457242471475585415155785496124184387935653526691996122871795114267932926539519424325123535953138652892272511635558889619781642787861581114256596875231141874378823148984736517521598721258912712456486463983641462497112366153485716921568126123485651734336497263495439591767954936466433465717764389883648185318389231516794848431331362154612685924631286489861655212947296583261935447437432675979164649815258241725523325988837399416524293334673764546967135662471152648398877682215219195424956594951397688969872988986894985671732451857432146361739884158442316811982325469152521336328714121122616381121581685994419569414357454612192761612564633596913775943854425581235736316967989776763353564514765176499571999921269634917823531894754636516867583434169626268345928769983187579579673144327921364525273176516226456382328234279193746728161391449433989858227592916111879931617838219745746282127218891475337431111689832438927749186195242439316364614818291961438619738117881476468116821473596231188243235851628465521924974385812582863777833315468944446429519756638133666321647378786186234741534476422423596674159868864314384987467928924315973636575745137673578998785922815757557959829212166295911195811142834693588967968549327183395284716322681319412451588492561925633116276893413427794392239185214329585321657312621958267669315152786274112468537115465569522791958578617973455713333244246823256313864117255747373942664754849845861955269266348158161998172611511758396853836982167512123119423647243354717215457333278941687796543838839557643458536532735696594296284784618661779113355447359421357647438198937571431897686962146743613998145188422521638825331216212856125835731354499568164332716182253927169639974473882813134769954938861134828463668539122449974886586214616159657294877511149466688776212596425943596497577181397911684946462814962138358482575288968233257742236732233917141419313817529483955553153766442199924454212911143592463739418774432744748242346426862711143925566819839316132632669538672178336129391881348218523184185614472749855145842923363943597518563463212693481684586854456811416975774998124862365848826737156998591476143328374715294893529621735312985126183551595364477272784396786194484623283573567821793731647989196929612984236447316845754279213769913516854433984765739232759645574835459279463612367521926596346355244964681548191587317981589998888848332516129232451633524963618642597272351392632923797871153665351824935381464341496557578782128621165942696421687828233646416783491382175926347944156699865692347491529499651544347817359956162383331226132293674912714616942385389176454485583837568963894942326335279825382253878169453765461172733826341182773778615741434682624321226942276241198877957627232221282398278635131693496563156421117242174211436774182371495799154892766416841413336481257637855938133936361684146246382742225714575271844556127823392389685753448775215925326512728513667117116679356977931988221223349445147973724179823127433533844718232684471413534693944894547773852673564956261171222465337645475551632763589365582917135354132533656147938577323885427754547636984264174525827888695938356544319318217998234845618261125585194117469995255685884561611496877511463968886294447175282293537821113652259175554982463529369582856113548914677253654275673416435336342811833691264783939161874196986493378481123732893531868834381525268915339572742722513691633131272139815965944442431431326815586562176416336179657325144681674822365268747531731594914818731523856511174534945951692175741311328374749798975466447896165447229989367671851272477227843275724955267649324411988746275517662977338378659292541916223681592586142399566517459423782468498342957182915695659143658448515252726785537827357542559477331535114637632714243813739576646964216694851191143486644511264449938585312865744371571539841472399679875579344756558624283857992849846771385686893311128173569326256451982937292926365232159554967452843233973192387568346378574282977987779758913251949518137819935555464714775433388253777574949219312579838833989783197956812614226565686257518519975623413881914997364214472122237471286368662563228435898655421197878113694399854585436768587477241362522321413545345873631837568973669425196852764765258192354594347455899979326813126195496457251354431822387137266377213136424449532719269155849595829857658622497342477895253913437726138448492326994236498829353157131842664594485557221555219893921228865679275462375839517526876949495815139846464922366341919297571253728335668446912195744231653214225538755831731525347953647163735221743339296951379699497715161823395184824461475195951757142236151877497981119422439987532181499755564672934756132653573527981547828448881625113118263679831256524764426443396485752246363524764936128774568882286915198437495936889163863425284183343727151255281841219457276521631193811244896686396785363493244763823894569491815449413635339734387972966647495169472846162494793556125517297699953641561257172169375314741152838348388184586389312535229425336619228928844869221674122335452498612754456588225941273694452441542348366545165198324475236926876878669937172114448223644816355731688865327167948451947548329539112381689856665147227954219644313124376184925541334242646127724193953536792429944437625783625952139121227453298285351392744264445274342834719879566438128323213941379687772528183135173212267319677144631517531613457574865177414917588992956482937564541773785443177312611344479267672155238821162929582322924462473974622927727312254845637383178714262285552555262465179872792449711726732321413742394299174455294448957424283344341324168388362747733134915232251634345548256446475226116438962476483364156413647523299645926561517121967761343242222912373418234368434826564457276329854367715286841131913738885992986622992917528457621944755956612782597314891392764331922123417763322757659928978771922112462178227455252775614327498651771659741673151871161791629632787387612956967763421523448811919666685915656513726557991888593672137214965414556867969666662572331252226389799118626282739731515856123376367317261848666438547337854766977625344322872346543715473367413497131939215969156962411136271982272636697976286121781134795236378122232763164678991685153338573555576562859513543631962821623332318874339385724571736228721621165869789851362532211143278283943475796149193563523615224731252446548662133756588431645464151542328145781638659192641683571595661174744683331682134883176133232924143935541876193656336393774298922635638755345412344919295613676322461872249925894246137669348936228199478169831349494485946961626415592275965661956427618562812513483526532787371695237772626233361545922793155159845643719395846117475988749797214152178923152895184619777146831196782269948714932682727667311835357581382342861279168787148132917474299919594449913447121117338333872347787343312112128153189356128145747676272441667773386184285495621333828191753272722995358664973234256351931991759473954738915441899576889837898228675721619966844721239143554327923812219514247434342314633948182747826135725342463339448137183522639755322437113448521148616759256754371817836849225778582329755637659578457296189682534124361691161218559889671494583177974845761919588515339553224252456857424496931546183767252683278671357396122317238694187595521367292442437585278464536894854718598311636158123858258862527826665226664433368715651331271863389992773527414669541379853354742682262462876761469881667293941145648491475822537697121337662594612638163471239392853971255449443169118834329297674734397898939424853773356788183445421452559158421464194662964179632425295723224649578829648943519316743181622372852495446864486172888793939697496238241911545832455269542497946468646539239452227834297586431683834847632355399541143924852554998988382363885833745334796918841859179166298319229451285526735165518145589423168565186283657663687252784167144618628874238611691328255296814993724191125825136167234531385218525914383222124363287767318556485465111763789311146174221588929244967645592115688777331445812168218116356848884636525268253849186438274471773649636389363226941982253678557529646114296797663848736752247139597555487442532496245326617933578124282782597429847459539739437472762255371468411217382318187111989113343644599413215449322446834891471839998823145637889227655625917212982953962183419491369317855237641713172579257915715642822963373291255551394392353255842383246218831135112433235552239739314139946255745783257215757627325556179189745475214931984586631394797656271367742443165241146812442297279133444714393712878597761961745759724584611448257328479191453839289646968282963741839493237179454798264747636323598331844961858732124228667266247436768512821341823182161165593341737122411146851221547178256518112358664937312788791915359328592329831893566228187765637971377522441223393767763988836823325414539297573621774277214418983472494723615481792483241325142597412668622981259891615228111414437112328349933843653114176963796726879483369785629324431625935337999457743977255429311853143726979131191568735773137576968831878335839595746236844215324319627392134224945961752275164239636468918833165338472686474562384761696715953461376561712368789617542954287349199238278625426566758362896176374328174463251421342877421367343287348197611875196726683893141281431377364933533947525216541382352972972166531327978311212387563449822184121652238111646821457372515327435275366319196951172863153883636397495842879447711921419654964228775441585163195938543162388245834462566495725831541282739625229853958344336127537755981972333635391885323152662911996423438174463188258194739362968865192122552894397546877496743116941316188262396149414321123562185569598626127582621696928917998219112462275847641244821871749359521822354836264813829512351826292216777183345365914623516145637896775537871295961959198552489252852689316542474629897591436988946235418453582666569772385355738828517347931298923124573261183295527949365912394587223842457525465671332761612711816566725616243987552183265283512253131839777893126574242897549338821297691197525618286897678991681526513436259987557173294347934532931331819341654762375246117611315662632824212987481684535157441592641977812387942632154568766133925467831169469782745583771551699851926467451611399643563348441741346292882448379644652315221298751944495413516359479114693971294519351745535163984932295813745485974774221788782224932559244216382431944149133622675567194413482121889233254343326838676124791944752496643427845543966622371258491645732243346656686333267613754584363789251792965151293166455399338541641621536485334415436243225623818342337556139842685154817434211315935216278431681598822854137433979786787145728252616439341743369994718237898529376583563384794818156268651631228947736333344645648699765585275761265167963936923817434551675339391944823256896961425714893779833111853391249224241727493397842239594653616572429831414681278289371121791969316683468274231369419143592427221375747981728128648497869367372282457864571326135463695572835138884193886872954557656729842799214941129157994228333657172544659339173973139738459795527927414978445151426194729239779626127736839238563982493925495166879817265479752189325566867341737194996113345979693268478375439164374916712529941543529214439191981856438542639718139184398335393762826479862276784775649558763821763594587448632367217317844541364182494782291835171262329865769688216122614755711639442418853178483913476411433412638341145961495665615611589954662279913214517151368119352123612151618589286731438294732687147613311321862942446247393222859945235292313849795443326879263399825216964356528253611915419643929741793443554832727846179644131864571578915421288383321697314582259367996635279574577979372649912733363767341696576477174347527958264935296155817682188565866416213982417936365713344223566938478225937833575237817455387221412151349582851334449637465866225557767682176787812595427772253387622767311567485464669787162147582748623938568812588839934188176977565282528991727158418257523769491524735333315624593119991818583194923437995284132856745918885314331593533128656762313491281927397994447316283294833994338663622551739498235347223513832259727921537725717717474889467161749119425919521338273163637536135369525147121755793415524633664659869555353724152746462633828525891686385832341969515186956857792772714925942361353729632854854359753295361423768118113738326526814147952948682141293518216266223643771985231483119525875596391866542219268766644822132861547347421221843512154146583316325998119661727162832611552413222254435224181537645222178612242795547865172259694836342877554177695363292377592435259993468943655743942968558321219945425212534948116413597814447879788971814663229295267735184154144496531179135154416437981828844962461278636169622481354442893533559253626232274926413296256951471327164497746283699356391642458877727226777391151394966667664614621197912941698423261112713279459133577712929933662795713795183766643723337924835865815574182683163929314514461189646993624466596669479283921415143817128295375928463624792812855615324978743883586195992126435683415962759663337656465765645379832279936319158756828472417933187224353791624978565766271473351332949976211132297839698955616594795186523448629119759414584572518359826797192971118735259356913913128931832714328369489227121984156441787341994757691481281799775831911861486165781717122882573417332734323552876542477813435572751353429213196664279741471939374232141376127214576233426996517959263462738333823823345113584193697876363493891671416125149767211325325555985195996647319814533393358245562317961766312981112868822451783316368442539216312483924325745154236544957396957651567534125142912122868898716169766321555837928233857882114315937699975511531192693845291616751727621787941852385215417672619656594289721987482352235497192353814366521614298188588192722865431395832681159744447642326765187813747399115232716663598798539644614168744618115335685744819266691671381393746688326449723753364151324141829532843322212439149958342899993926716644474186976531394641912318119699377415124313237556136694719132825637474782638955748893879184598635459847945529452621942458364423453452929321841776252137593863599117295827231257571966812277869757233535379523523372246821282112488729692459492926725812618263511757162689746724337456142336764389835375524756835538354752283876111544978272272756687782864118212394942871238223431647928543653747947288881222857911957455816471589146556123815229832182685665812611692276829121894617341641895996735149517167249555894921891671467471994822221898425392755711893851799518677296929339857648331122525339677116797591235716823827297393268252438165122928278678874375366746243336371295463323399977456481191179293495163456584385785622339153882928583115218233113578465866155238993315126381837573341596945747121757563592377153367127954342111143487444389358824676831366865579719615513137382188257553288845821493891373134558862152962874932517133217925513781951828558226948756515731113733545251294512965161741199287853267378282394933111442377546378329992825452961667548492824534823287669397561238251367957547259865476665654895722375418783169953596799464639348546273726798852398795485948673179529925529823254453275624118592943376534159972792886724833379442854194811832884538411919283995377114132838119133145218881151118989731247196671598587373552859934628511246733486676575357747224557351492946475734438919672674423216787165296361966986132761422995674356522989573849566379646355484817566659446533647185234192617482356539642374115241857956272945431451851551179876972755632856323886937842398612731155618421212891815152877784673661353145538213776889723151622441375373149226776118467383491119112162694388616194549987438514184386183818327923376665525765831118251419438331372968492887534468866759739374349153991188595411564287122411454232925924481732969866583538134672892827217958372819222231553348359315195423723279118286876181474454974114411818556621756128885356987415496412344174557314821551475215164545298683439652655118928787867198919289925334282742716375829339699529868539766825476484615262271832395513127226444555764337558212927957372466532487855591759689483583444638591332771898726422956218343247531227926236249174829166373211281352227234493929341465863124439936663466574985156852596971914878386785185678273845423562494227762737615223535833577313916315841134741165846277189365681664547129122175595526173186879995971655567151443326338358414889833652255628288137394834972327441428725589999959337868164883714832774782128766549944861714421676459542453837173637346713518677228674517294663289178521363524462151235664695842943959428471579139346122913519738468813644775212216452512931972161512555752342553234483791992158214242121974971915723223932879513744348225222825768645736744128638856266161453997273138163814695454578691117756449833997792553625765511436469179527384336932175256219656138148185834449463142575485759255999296572854991732215357581227615198395993187149146475568953773765172331529633212818116762244421326759813895989148123894149712163923441128424517795261498136738289827472814238531513812874918637914166134861266341414656782387596316811642687714787953953744124723455238917845464886367312878349651815943348481553942622123223274869662751911734443529767135231571796663553483123383649397833411348887442563465858162731721568389366892171927284749334597953639553432129243313587151127216422335655473683496672211147922543781163862921541677528255271999393487357126447798472851365419674827814678354378373935148596621315933639552284182289597843543793126527466433827542957733568419361349245439792453321914162353413551329673239296817225965542842616978295375286317356471249276588569491729658362342493756261478374775385718774959143224377672311112911173268375867261459212343741199573254868517243791711838288359547142516954839335372118573273727715847276141869151895327748189339195539965233554834528764391272736633828689881317361255413953341395861953377739635438494875234694891732436957241616651671912289944847244536412533771131696779463371932132646767166443296216259116116327645462242363373128927564211877763882649115576446991345758415141944536946341134186354578615594112891741944565282715172576616333395598432318781983699851199769754486311822197937634126532911523635594719873969329849638999451764325249452943237389833486741927234349358387257693427441132962177186118383896764459522554585648212351381639552766536413827448713898258882124329122591172691824431482896268916694952179942671161184418371985949894688194149832925462498794817937585435292551682639854429215448255327359552927928325426855275888211526374232437234474334283265216596424432291197777216589589115132582324817716193149399954875146625951528543153717448927414869516611481456192373396225766213257173865411968585133632214126861144312559891825553231632462421584936123378442751572243856986386416633468159919843479647187962833116659114831227684939131673935162449337373639226164275561392424646978715238842886176688283365247618365441298929473776973262314497682873269235753679771786984623343648158666835277334113554876445429931197139663964155981782179317992145321449286914437532541273112533251283381235839856616678915165332721865512442611256282161417347835355543226141829613843894376439731276447854223852572865668141499254595829712671324362523619315193775538374781313373188169326813919327426937512794476361856376767351549136864932198567444243441329353711789357516236514951471644667835867644618962449727431254221942565232317877483257796138596484653975147273938648328959836621189811212389123844491845297122339754644616594795413572419231641172488686286338647539658775452228932219734143226494621171725652838521696921565416219134866398136267847273374948169439434115311831211683165665735352519516579613868983535164514222744416532266295374687776363953155261984947623767785841564753462843222655825991149635943515586199312958263767196161573365878748417697437323641544296993697894797791912148256591584946565176615386573482322921131866322114436645414179646797822538835377693794181518268772832114395261839251155121748181873946949966524892782676492157642685153968983152214281232238728331823537967477164163661643789377554774386168332411628138614981455112662562613937924342325389911671544759932388915445573442314239582661477775391725251947124684229398198264353371334895195333566547148633497518915642658655846532231274345114276831471241121446394284312761889158643667951174772432219285732377128861969234359914136814918148377868633175265977947827129647659225942741366752996466242972172474715628941621139264325499957325171352838392818799869735118248884578574925358372215635454912972431187925114519762735932545738832886835548566611713872254593718792414547498762193628857516696343422213332857818185163449337331219575121312134433544648148881186123223373841428119612177312572682738146552315829947619388458862628857514543877484319888585187217511656361265221677159639198349959251521172562137722912287584954935992429349148519771721173912858367211143646321311593775436226553223547713618878346481612992229465586256291412177744223877194955532211421479189325778748825715936332128364461824142874922189393141211154876774728483413894211161174856811751416757683137984324189241583271527492889416128212392135616514731983533461821719961857214332273782185684664895983648638548334385188665414943615178813379968552254773617281162949298829892679279248534949225466285891977896482145979487361459543189215143712812982676114663563744214581155721123614836675861384236853178625585567466966433331689952826511322155273455113599549616888213994561235468734362137934597227779942531412511836114578882385314953799554275541526549357548816454853155649589843312591359925293594753887514836292392856716261382512743624796743477892563971657673413276953276365369575238713213233136744469283591671276731635237246622178131233654934111138576922183414447431275928436413516391987457219857245664784835763295641385517522198214225399541751135285826282219533337675924211996272785141877384799279396115274585345945367993886783373753384549989611116898159111193722987614242775557692929513115376887928349333463519328581128941264717232347219724495265164653863927529224497519853914159327147582282899345248583543216477115942352736678921667248838437839269692728512911449633382382826573128724533732347616557382556655266988395938221633238786776253956744481951293833834281923594657255428298853961581528548293273849942285523611861411515585611724859123748171221856383565274588983315993545295932813175416454259944767886142227143425566417945674613169426836414991519871269161881298122476512863724958992471745359925153214481626818199131761938982433198141122286123462566782645266792473324216346724231533644223869426938234749957391325193498761692367276148696215421646441641343864493172133719633277319225736592588274871372773419394726568566225547715317795133187749133892615393548923651756216373553114627526945377343738882881673847936217289175591663843956476833617493683363474229265678278964621484588524571962345684431396386864219681571736895846379849488364543319167159612477196392996587825622882241379367325458818664162142796117235237647716481913233559314959397788234256687864516843227721834718347749833232178415464623345155462442211245349772918825942358821633945751569815659129131723257325846163961129415439973374439599889649726363524755498779918139595771677653649396467478567992274176571711923872918293489813553229243648367431833234441713884545673477412768917595991566797869339561836893734614665419778178865448527436777217577912521833916778216191188821686695551124937787754279474791634797434487759921855163418514242459715949221459351273444693479375581181519131737485442943398991444521939234774383657753391292614494814353813386951578948322813368265529415892864196558527776965215332313816827316864823694425186587225678792812298897641877674324694419411524717225928683657611556952631573397366446456158331578151947532354626344366173878456274697796594231767669626449626462362678366996755349564849399948692595313235694433311114494117954893111711997822532214274276798136127167944182389892123499583587531234931783191623912416899875832342924411323995233377954366317471851447737619621451856928469651556354434738961694161234921272114391489322324771372242761671661374446659248735433337464827614995545562363935776557465492376334862832139835741147596934758289966455395388932451645265752687235118434834744227151755611567343797493498236218522322714213126639826959181732522241172244629454897387373135787738146788153985185873856622861882529737218288316815792223133167934465398473563322342663388284696139794435615682217163422242896359583144923637717171244496682473596212133196885883777818874792221324159335592215271139437644113842464273884575716721487534372112564826741116549444557161514341883963172221139993124832915533821847143262976327786329762191498368188374595189655266964971254271826545387113811473411456359386137775816956287165283433462994236746746324656633919575783676533619885365267367616765528231432652681592518549482121121745766783863237435753239393341178317243979164597255479931763345911244885598962785682168444729594823338127256215352254746231632763386591453763778926736328674645863584653643218347489636939113584478918635228373757417521123187651369153652721154772361832584549441485497283684994556425229738919492816745722922418563623786367388846775439349755154332461522197324423373724399344652116625438525217824452424917561466295376559491433934172398697525711485169116673716456349193625943181842338558782514437975674529199874554266667136981751524111674686731922647992334353596838332513294628211644487544349574922629313444191215858618384146391167411378855553447358731216255595537631115695842975648825847356271675364626145246674776348994648162319725511951159498355995245863512148451121551199295339734216779825121258226419286191883711447614888967982856311794213793934254445737161822926472951287852131273987643547252678256853868883441782157334561263895641689719459845585251915632553236316244163472268173818278235235549171413322615729965988298764716366355143164414334328442928797862667854979341481215147124687622749317358494153469314191976428736263694654343445355744566781849256412324397888841114399561762225791827441641677332789249228712585234421689341775134726757172498514218419824957268444281758438915398311462121339146522635873291784536535944372138441814887539136297917488688187397484173479757372513722715439847593828598271465811239585737355131816824221658915721316525137499446135535471576358385425547913811643183928952325193128615551424581639963498764266847453675616632428565971698919425715265244582496993878419271596429716469424639311194755778192374411523344355731555513183193767991829971123694998287336949883812176517131428481195453627262394267799247348547731891491675357986456425373745457523287864314686278372533173691785397465486817554861165895248422745838841157627359219599763767417264816131991332795759852232918744763561363139187343917435218685157974474299494475435178865893678344728323573313274434521696691192439585327776473254136723853671727142979942972385259976373657287755175878378583825462967223339215395448122343623828683858765759566759589512112337671822591362813636127749963747612634328414484939932652613916812749623568497181329313223588823761853747685893341245255821883736692431928814822726572782616123912449123528338742936171945494658271321867437541574253958127289293413865185731741567453358817364859487548413436144415325748258877126858159481487413266343521762641614794394834112912862436463699384743657784129946933166666626126299717971276364356912738163224968336188299279742217837634691757365223962374714885537157575137435266339459925643531246335645833196612578431584557967954465349271182667265357785644993533263258957452423363994871933259595788679477869128333984621233197311427152594819153271482322254845952952614113799833943625516462171337776568165224694647177316185647567773341392439314613226595698514151942821448475334223853788476415268883353725748722311651283754189523659726114115753681564574174143368416338745651835142431281386446321265756523569788784284141249248231162867137535948886183441229872974452882326718431851629618646333871225186673342863146822426428862715363571646611516111438967449838469843756416922518572375868516916853637792911613511255875221328256891299285795575626173775481269257122194575181956737494835931972476981221578393629975996866949732635188156569438324311661194355646479739656731198157341162926837911182696666437247413799343896931223549423367996824711272723241598524935525258864682564696719654312584877388245429874137622783424326913967721629873729458944579455394868656642735192859481695483271175539359693739383532438271335936953168117642843123465135355489171432355436157721572569757261813595464829664364487692752359384146966552187133163943439366873238849564493611799225373994189794629591298737139663163538592837584593777396128318716643335552632892527275928643539896179293415112213624253685653733748457675928798541244282167255684172432568288392267318472672447564351175474267267269852398266463419564627942488873481559483111971642932427686129246958231256314746745121397624147453324615664361423868692858442731394535182299663559833219614397633118755894554595563694357684724468265787964797195945491716814694364659685934377589372216132819894627928325599823336752762176273459943158614275976495769535391664275361451876263656845787682276168955342285831213583228657596681532451261541178718828492481125442227534842641531539796558672752516473767147472952323162418156215644181485412941691518628795136735167267833719664122454134217293477313217321156971932197922472762731572832351193593189163645734766963782167539442728354317846569912173115881797218528141285281145788534617361528228237933423492922225664758772114933617659676724618639196949286119885578252452232166843197946329793864911193299837528424567995585863953312736265614136549535811516527266543715961382592224862316631825438133793127386393855684517296898674342241857686398589664267642297982562725439796951486745976344161993673113636155112543255465464265762351172352792547281859619917883694813544132788391495718195514219355384411443197659649578595349887155561265363152221833519174486949299932555951794556891156584558611195332568234989317299987671792179171323199291937414224372676282538846868837328769475458598642353924246145719874297745148378413676151913572851389116228962871167248542236452762479316735519588721596724585831156739664196111721813237343867379989327636176734681679965996433257235141212782793853596245717323728565644871618962785266661515525792596398721936693324385633537158356226255922544871246335935415169246111488178771112311336542751297444834623395239835319428132233493794379632315136355393564439343899944225189761175633233941351693983836716437893759626443169523752241731772167663121733141432694478315436158525756624276458927631957166224268226867281424337868514336614368621562242518868983712538976978898578315963261935833362626716753592483447344283687194612668211756824863414378446987566515143489347718986339941114319595292631737472541315698164148774534276251146334371796471344898954817314332342989281241877751884327452179879142125352351235694226451236856441354958643626644243397156223387239224877368873532272879299896621668546328991996272987364654346232995346575721474116522553814271896184551322363414314391523186847743358234757932339881148578886652393164491814728979536621487174919967172116612239359428594271979993945561551242173822112674829141786664852674115164187291775578842822974317547252747414994447897376295955764361784776565966553936567659622536728245749242416496411851577144821894862794819455885713186686473539925415119914499631274953244915976616322165153546852692335256928847451879294678586716387238833938366874191962573976417424624475215542222457561667751171446764151963493967544422454966333536414879949574698742324975299333442597162125241978739644176186984634876161243983476258162783784414733545458847946578733175761411519394559138248999953284639125658838124286677262465626559518335526922442774956314575141626799356846228556391417266884921617313257358788621474767132159687395218894417483971454252588925314349124169673759474927589934318483414758597124442419111926852772365691643622941128355742714342965591579795143214468394618727946959542592634743222622893822184363961391595464539337591412196625776324938954532614161312536955794889433952726956559915632296582235752799993518338217628316497751944717818428435741635156464437328359151865375645975764851153625292297997313574836587847434626235919293434255266161652692285698768589481319197811465491369351994449359736295863259984591113147383572162421642439573453592694955135795256556161844562273187163294649482437468234891425758812972643632361933929549243848679785855591218247632653216766414771468772648268366657823152544568831918381676857955173941266611137178177636735852116174327978215299214679843366869368437837997176355363182489235238557247624284221447434813982831537424859831842171139846985275158848475764316238617611655243134427398157349544552814539218245432245628664433985438235361631817113251349779442735995636331372287134932615919348962767742872875755116548431978944846413646435665575966529247767536513519921279455378164375719262485172984425959229794788685564546341549839212667474825771827496192619143182277944319893643576565386776842834918514712916375629628225981639494996979567498928941654925246696929832516996594343483849757624772242466931645577217755128998292428142933681726576811328645279771436674725595957461859957539538613316629839131534663752846116481761169448948112433221746767778324133548376892965458113359911554712886153266751342415511361883155751873414731868638839466225622921751627229652132216534413924525475953953526956491586537575318194455553116645113725485163919392147838729797233794131385615374483869725838154223512143154389613912869436643539118487196281335819269638184831327451497643428933839198221289959835469681674665753674339414927121167697127599132266921749456736378416973422357435865657454832151335942961755671657248128878213569251711988858649698132748743237413232398715869538632122272235222115124725574151545155838954528712519229321196459837547993757141546982973471912758849513339315186516273596416993214284233784284919511566231649215754664248725759414619288653176311158458931381424813616136353596926311294397713145795793268622795252143391722585858882427261524467384821412323619551851682274388794381825786552619367224854411419794622769649283857784132845841422796831713384668846265868742343647729727375192248643857299718763743325775763675197512921724369496428188938722128513547169133579889644567128966491813785482551321879731166982942798832265154137257148519143653718571171886371839859538876843343652422182657143147533525965843586293392325492463752863199618527351474378417248895739784993487589292561797797661171416732529753846294979918857315379138554484721939198435179568625498575156896271387976526641549921189954331583189574592761944192928878773841393856419124691571292312611855141435134421662385714312938631456589326395299931359733579836943174769911922755158341488782212837363965951522242326196891427835765791684993173395643471897858248795298751574682615517314781348444955217899343968265464187381778739993249542776959549239294682171721269317916821932578298846324313347433815714375646394723211117261167666152483228814731871544137391311793769714912253735533286326463747468491366118279739295235283975133599564119518875795367161773314548357519143124368684211284812567699312541813823839346926214558247165934673873599681269619932294816251558643327936764964147342648174929133296529679746456564129353442277522595123216497481718414281926551311991574995818684189681284719181161127814253434473513265286962953219637764217119378447679732756159455193392776726261197521684689228732859522543794626485412455697396673463112137131472652539844995189179549959366142789443722594359576621576799374434756671125343233693972799585285965774769432239339352646822673361329758346798187122281656815428211537214539447834417999721774857327399221499149426588362622845553452337469578825359382427323853824981384267813385548861347726989943984455442217185123123549477133777729583185365568796248131328787987416371596188195558637986361812939465872265985312381539313918953337464478275331159821832283212278736477264979519854523191319996983893174663745629791557461221143125132614815485577337856687592433498547462881465133198565769649622468975543599719375564984558788591156163113773156352161823235117444644745757848855413423617786183415213396386399223415851476512664756774894219943222111116367887961927263637593396679385236685638827218616848236719745359315342767426188375592324271587689312165521189117371262364116631523171978582195762542144525761925591241738982355543414178258868156231524184723331684643734586168333624825517648572967164393676949734175892111615897261957712515517816986158377455164319558837245514519815146555561547182574927819171435938947814253155247537273422219599918726853816375722985468643118541634827689243683373897498221763734644196611828464769911651551854194263219493467183128284158931511641377884181333635451518466971475578862392935565965293769972758727651433183611929727366932914558692221879396734957679726489471987525425197873533131631998966627593762483247399158877955619327536781496949664739218629167144761219814994272861834348543243314979389331266638759471391389523127875136336418332171267933692587453722729571686254296263388194492877877943962946681138728744281345418658359556168832744225962347837178552874127845541156344513853236417836647813794853643878845557993252726154129547839238592555397444874565372412985989871118352998943434533918414242325395646298744331556225384217961716242948676237787548283757124937294956614521332566638659356363618623931614529174578568211799597236467492398926917138782787484191643997224519455216921215759842866123498539346517114361999525461891779327721671385322268734374555686414484724243372253767673972319713913768372382616922764229785166576594228994475522816464296292435525711317865551482176769146321118662134351322131412584268456182267122684282656471556462625255119465989735166938766992445593683298725661538966997221249427441166818236181912284838241333336238995388766432235967611428594768399623469187739363923377959944731158919674346515229151792296129527194147483317349368632137419377299724296292617421715683853958543718248798721783263817333911817192942418342324794445518134532453887258218398462622222224898492793718796626445371822643541922665341738541579246223444414327322651887415913913735145968611617162289819722612613321919872452838391334582894993521238282828677844566621691477192765398864742477177836736969824116251579483713531136147197863582322522984692627564738976666255651915538397219872859344912376577756222596268989785333758733317311111417912972423125757261883316665852213247417555321964119724339874231129914319857565337898713622353617382474149985132777243312869585746415248523928658345447892652182325642848414116349251137523712589832126446725656653824674861165869411289523932691199947868219855356963155489284377736115249755699384944773113676366384262177558731395934272539737129436555286464378184118596593525749811961842614784322974445897582256112224341676643369272895811473425922182345118329958166398456441278137895838712556662323481697633299796349534545834223587767267633637355271344735831353267845772822642253914516825766569933462797393995863595416144315429766822928153477441269571217329854853665763826558386893634294724133721133521958917278135956377991521763963686923275213165728837343718919533466466676159563348592388755395724738541933728265322288375292899163746189136259773745246288261557621346639767223593134935516477734115947872541322392443215723738666126572913446717262854181629392743719972667589321473374332683745237559548623558229122849341366457196917798595973516184666342985391733315223117423222176855343665138771446368974551129911827354352953768666428947679656217596276798482611449819184228164611243843722649948415632742644337565914873844265526535333455196784313145329441427127352933669614736568686453946485312594971712257319827577418542137373676633344274812229371252483374876187347859719939212993448299461646789327378276735443224715262952718554845563972997576723231946368361738682328632374314245197191285754384317831714946621685176952912458685149281727775173413946261141113252484668655374211523876559626677339814953688748692198886388812758236573933246135181935587789937255736394813433997835645732175752495248865816217276774147713253965568628876312332244842737252273152169191544412258261314614125121857746378344681236158915975815883381361212746577711326254798833536993743884251428539773482465712959978793839744561698178679785848654817258966436414542585874287561642676449521353179855549547734272475133138349847158531314576738627238913866322147135586275256758825574993153565124887315881547441681332649811779188514859575124636325152351876655747974522447644499935586794313244646924438547222756464618418696569297723815522712579852786286248212746695734133423811466173455534664495764175659566186317115433963658534894644394675361559474527185424497943239643297139752535351896521298439819534885421144448574696843813419487916216538374591896332163317346138172213663753315145299989839964237848544677375364192442137583574574784581329988181227438762123579352695975999153931563823672481939563312727975682622682936989951821418558659674163488712159828211548863218487782563618829581161967688875531628214239581237181526769589288381983638833341983916683112737111773556919236789246463415796251829569161831893356212544793577363131723128253843561251621277984482693124317771344527551353612975278789333311357895486844634189112868913916825727664877957674369765135699134646921317995679156754258163322647754223127899799763296213444596116327878148941255357649393712131971626252673732284979694931192555526119175577378793461224772761122942114228135182722243625813764872144797986686566239741241312981926194765849191568811813645141914997733249125358797375633864834315448919762268468946238869969731835742527132841653725116814575463177738949713253425732198788329418317365231115845757538951627567542972894886637929465714839611634386713983121554434252618521498835996397933964944293856717462381826912686587756873251862714216683393665648331642971686195767773633426166324879424718283773397664561447411812285874549612456454611348978777959312317555838232251764736768291694222742837421436489272243898953841611739614158848116768681371982788665323651414661394184214845915323936633575553931845853953943291294131838729824599612819682929968424977982926726213146657669975573894582814479725627938136275599421363677836423244929332744746982947489112426318612638856915744395937458846328343253379625383197458882543927857495436143486612145367769523617258345559968344921144251382464176197472275188969568855729427756916252651925169392379497413914643844932783897343342882453923451966764472672464337221356166164953587845954845711668883576244729981743426516744365338924659173134736936345282644456532529626317994373353976258925565527769788565136353831867136388136953161417591219442784132988343558115446463628341222242735385512181322399286482861294515398647471583421299747258655566819393157926723212296817971826582692523676333459779541138598616711129621461755415575618986999371464461486594621236789718118865749512213484993452612137422643811255814253561623429616157267811398141515947321524441415433199456255285227949613195141817683128359555512471435654998631587385143869338163469119595971112664533153166583295331728946875688262937652244648781782461576649493965245941544963876622593582886489793491624619573126697665829698426461433339549563533729956347438281637535684835982291645198975392316354942322695294111373486678276245535469242497415214315785253197265384381519876532115816424478383419448935335897761843646233296439454675986824456317718745675672991488631833397778881961575884172641369238773465884169966156321381237776633515142454324224188589433382182864223715115189949193212989574945422225138496179924661252643543225915274168375476754382234186836217838542443183834856614424187856573882642998733713428992712117284883768713825196956242361313577352321852199458248669687561783343298829559828985331251337894795235572433132268636324298953875876557842515975481825325442246931955658816197385914391868249755654919897154751111383851912394388249635857477371119864772447393656398338467146643881133445567949391474421156693551317231326619533517318567532355464124217297176855228656713164232698623493191754954183513552815286711592623987437944569524597764854214931578986317713124757363923486791168879865639322721287217481234514234263465648766158288643224428998518174684128486396254138843316431469147763468837129848423171537896659797264392272252874138271742622987119649288685836114972982288823894254694273633138625618376871937747449719174729879412899714673589248559234999927222953168499943543229969752462898657391854672258361976438626196582844781199759841174352192796864168585751184548122378259886425445513812238191316244737244747371245433861479385367661183942944966475478868737855265239986446666892288134517911922581122772238633147132221724258715723369872217567247448179859515724313936918161275327584323794481582478456545155426819155396792669381287654273711323628764478292258826198332679544192317795342242233533443472264619656958614158539171818532936632719637692237561852582246467846674438169827842271361455162136643374631928621128138956932787156176256226912733649611758169546294225612155163645626435653243993616119311772756244714796556336916563788557946958712534269759966682355581151552795393479819649778913531117149459834128945769965788524714567551444663219196878562998579419147788827224887336693475322295572791886559138946969377921242691441485818398581488733987622535898395586296818877333825473938634732924447931262615762331759416673954361815972665125711782716417649573188642878212856379526479332943933121576592645738871679112791472923472436869625668372382924825843351838386662538217679472638584739512757396653573282856614527826352587326927238784469148838123847488656378361919821619812743591424147185339576813753477261281178571456753127461195816328276772618277753634274886114187686574171765512329813583675418234828268198616948319333182411785861759295233584986363621768628541423627764389126848828432772211835216344651634816172985772743593868178864358697648438439987675336351227778851242211263521288774585115968497953932275889231989783211751227825267374126151975863729423618358163422626212366827377216492397212858285215145143374326199984492883459587654282148735369241241826281272654776524493633942982882912424822864985718881878844635528312763917267274578463836769941931659935419613279113695576244147154833815442416758753634817625775393277452531775416988583753626277464339753154379938415922475682743744554262422147427872473947623369827478926837753229211291129183443724684125595857386396462531267559413537147117329148347316785132338684484911483232894968262698595438872239897895254944693223157936238257568663189235272549371144581125477369751216392342463639678527453234892818738573162785328774298864922463734164234964443477117619566314682948226128171477539883174547244322161579729627335631433467644631672553489191948573711572864471972639575352452891187619491748153993354339973378113545766988672246349492234915731653848179449316791582383836977246319512156421339333987668357514581481631485443593995848679599226957979781663711556962195498593694755753228836393529215125368178258763126415924972195715758815584764282515693217989648921184857389459211951145747772437258245156647811968365151129312279796873766684493216388271921436288117615766691784176945572136623987882162833944697868989253612391525684778984513825724619159456774741773362915268216238143366655181885713471563113293452262971675226991322634684752786423591821945682979689927154782217383949482249375323689218528261971295457222585587667559212515694141765412221738359251693384919821531766617975563657436547468145963562819194837331235214343536671253694166969515471156313498742774587261186475293737861122228226841659388865694147682743453736498793638534177412472555776441418996696511388722567936342381897713996753873329434161757512331719561963366752669847686972272872836191286557817653729761252142384584818511886692396879234712292866956173448312642957194537197956459319433589213635758239259614126473158421429416936162535789887826434834435356116378867673472588854287382142719715636557272871737692118171953135519319651529477886371154239539413234476278856475234217147379779838211576887662291694573585988626469687643931172223917634855284626654769466937351829111933884158817447397645143511976261496658823298674776633315177937153365426126198195445131764316771198895593281218474581714153185593323239141751892573538211115244884932357456346931494434769713218885896684989744155156862814289562349561148118524929323311276271174274656213755151658596428563639185238934389261526999512797451746853769315932841752846854232325683862489737673669482982682968141458148414125874241595883831355953582699687568839363279293174285532498385292336124145837728417247591181555789834963744769687378844431725669179413728168431311931595613619472878349332622452828566771188983619117247976793685242579215839754746779748529672477231119433176147657212712973669959623523135727132638511446144356244636632112131874578148488892514525494343922156551278158446111521765483652457941721137385634942125543614284135194665299866123957943263365763154118943163158147662119427458444267228295157142919543111663176642494236371251222231381322418984445744477524478915472929448483727385875674552271383483381224986158429851483248354113762621842941914425748941674143935491269535147699313428212176114325531337621625841398596715846257141232698641155322835844892395737731721616346696269342758132586159397552565571753285175357367421134397339765836296295484139386916696832881476518571769873546889235473788887751429267531719371553541377485411723855291382839448291234554236324612312847272335221473735434752754274948534415821379282219517981258736369232373958453442367611948138251645775472559779545769855546238358727554963776274295345595439788815655353257235241795549372874581173765615916977577119935467514359921127792196496537755893681499462961137131546376473426788111345471938536821832236328665917539655625652576364822421347475469519676816464195855292267452984521232758413243926383942358561313112216517374382457456279521741361377727991252463793591991466478464486582172718471589298579122317535294165711757885243447262994588156337811386625223558823998639639857527153853866683174465226627374156746522968965212285937935499316939216216949792741284464287466336239162416994972642631224724978634713484945387938145215521162691974578636371423886243249713466563176961586378846657925672548422699894292194377681199514265381934465899298752879755155696513546229958259616465935844245562424245328553117415117262489877468937917133177714949785365952386862499741252452833813237975595272357351891332539613577931614167491217344476257119521454844327118157634451989243179381592714137839572659565558996711499389161739883539177642356821411264877131247363233485146349739524821444298695527994892368112351855123142534585276228747961535985388175447116895939859545964512265893559465266254194893792662677836439465621676137873481329472387875253716436266967381634814367186724262716724814856977632771433683944964476855512235378766412163295516992428946289632898867121751598331419814111261479493654251837438424827994193345332258855163681665999531232166587951721182298567915558412981345421343525786464849865128312989695436655372856215758559431834854364897136112698662475857367285745836342455413782493243482687195185428494321252628195581522821799534865182691339469892289933384288912518331571471781244336752332143434154616571977388441858565567233363575938475761944611118714458418161435837427153552687915749444475321567445916357316263145221425312174334325199244693715634588919279959837382664871797571754265914936554115231758227354355677196476121662625359654622173167745841825368364625518932297681763989667118516822575938785612573577911921579648384151871412911984559654811151124796835488581162131159815198614779476682581222153148152315595112265865394531111282785663393246893319629812822182146765453741134379928679283996655868544365214421133564715867775639256534697298678711946319639176949636919681413841891277648457998122792124318525842432595513958949518798249596836593866947717297816792384455678597789238234894277657191248951165972731878528916416297193484789145168589555734894153233339117391158976695172233295793557162748814596464493983139475351856851995719741284533295638281614328629857627824726171973673424112714281752324886525319744873121594564999567156284492825277518198162222224683765171115823389773918544222934565976475181727529632931973842327876174583516712774443922396519214993975624864131142855277241549824625769425471888666353939153931191496343472659621397734661523668617255848428122872981574927313134498286274329241888753437429983915466223315512126861955282449714475494167599145524797178251845263939451758148934123655563939741156671679799167517931445395713793228685323925761597447969124931118561262489834822953322327776471971264831252286114427521633432682866194519313877624782931824343946529227574124424611741413698212861622388696284993982135254319295164461674826624567873946245771637264688614837755744862752357253134149768126961153798335642219368899322199739156452286369157425413637395615886127485244881622571834521438891548621744333142726226178136245159868537216369549793181376428249464395841133233341112216255418318414112586895686144361228672696383717269775582474545799765713185232175248593281936182243953429267287638744456596445493942533383841136671822472277627112411975259681397825211185226793914265696286496638581165286619898421687978388392825147838237414795919312437633772821128818567612481995389531839982917258935225354647592642574456674592326254825181187515563975384392547575224299245988479455491784349631971119818257122163683379384837156757949716253532576339222739737322361417774599928573541828385981439712943876646428859874285677579582478659527762325645191555534142326438844164463888295158484558175933173195925157228164395377362388546242617615236652373231818993672612129569453815558346624896255464178995577798392363218652139424963146494461531487144626352493347518929127334259924197983151998448875252994972655879575255932219419537415228371441499123659182531335741851122857373222188496167138725231216516786426857657496846354453423833199671174467733299197937574774123538383164561473182731461978941483221331429236837531869816184344942715226267198433799439124796691691353623737876814132125226885251417837527839561169672761979956715253236366371974966667316595331871144244951579554657465583864638467339172239836955733713972391936238962317169534394629678193443778338343113722241762598367292175628258332436421147949127724598544138912491217831455816191576926576761975355266985829864381174812212646885829251886469615517626199177645125561921323222252389828811249179483263688795292688996533392185777241365271419129617232692889522134185523826275261282275126859923684251358626261426339163646315276333661495237146156579739999968341917524524289767565828325724987526616252973431657925635576445982758143558335276219864263773931319236785148715957114158127474119237914592612754624311337291955317647521572792325591419353156814792111743152883152232975386626631611265727698545185412736146597611285541375416728823338941946495648267963763226452457776874367958671479374273224418588572553782711621683659512385649319631626684712341775875392117715766435635682246178873617567624734355539978816723753761289345954544145254897296982367538939645532314844633923379875798867616428915577657342272163918535436749188595124439771844215837494683852235975525197571268738959737782241933444242593644732138161853156491112725221652828511613889838662989799492817313862271673125181981918912213622798794469771434657869625585475227351793279133146137636357321348631276327474113915774739526767653154953479438354861195118351712613128513965314342113643143142466443194814185444696736375255962775886113478132925456549431573147218745754368629962356577547517762124685315825843359197387176194351612781431347931384312673999942849475513657995312428119453271132156537675833374564662134377182861534119958865591855897426445783452679612936987553153487975452295529595511359669497434287673115462511959781713828444646922629122892944964784131492342279527834497396818974471471351561479448944591422171333653611186819216838943761848711634135993812441981296777336819188444783853848893161672855846772671478581918713357162173233997232882363223485911967993552416796346473794967133823274126312832922676957423267162671783791589114344199714932228923557824136995198295564954831758145957651275661718774138833112242977114755276878481841931156136511328981126713226521834344325678675856613757779596218525987422682197173162265124341356866316799743663946236982384154234361265582268717647682233738335534717294488147656924531749846394378516534814179227631641335348666314935653952867861692826242525623956134924674516341933719175693574154229856263585167861563735511948933329945555692552974421933235529811499437713842532136654636227752761987476184381443816611225752556324381739516632518649139142443542137199898286419883844111377899653517355157638851237324365142731383195574845444786331978395392662621417837148652555936834299772217232642799114541837558761335871325121671357191646693121231235235961111445883787851123568973641274717475116964857254159861184171664619787266192399613628637776636868438869334297771959275578412691677661787778917194222523616912135596895564645363115653123911328289865431482633412652566648611361767853898253665938842587194865361685476134249386825282295249862317363752223894591235872433842175535631111723661218178936978142782494543673759868878513742629427797942628723144111882414243147745666926916651377547571833662412496874127938256833963196517435287952818925374381846216391418334598337526668777784213157913425263168236977847491284346691925386343893918368193371174556268257838528398582325114551165385737273782421162237749717394934991572279573758763758371671786287314639193933947671132627881265573245129195724233464524125683628476922556932697941238613187771717132461285673598193481864266997631333462764245926973119361168564456592534232982419383852782179279269881826138532153383124123171992874891452614556631581723856473722186914376354353139661464187717177258286183298755759198981885269485124831573986521183495464198797987317442548446561333159139196451233226257352976628966433244244242281173955251621886895217386384311553597866599639518573431849239593277351776195312298238435118192937465578138751412375437958745435939656346942576647735282912695863813778342473241733922737527667524598465169662182872298583228671694131439836325639583144632512494287223651448586745326558949424695554383449238971633272273293496888219673256777282536216188236569472497621712679495241839266268292741117272477187528388346177143575137139188175952472689183136771122444291145391892885626159657925471725166984442844283846761719381924366233556267262768744818557243399589396924567142716874228387259288753367534172891145158672261988899956244118241491458133256122951896124141478178588782537836121849647487962314238658786873629648394229538457449536345129799913271152727629854743966861297544142273875928152385459592318675598287843415678664354764911792462132257766285819132159458199976184192351389272299742121155677779399725584729514734245877555234686269423198811457628175771181449483325459214468541248564575835396286172322565722684291211643485581671724532355829145826777819296161293436115143559934912464368892815417414287298518679536527629422617227623573729245615167982238762891174665642756431694968157889416476328633863519592252929249292224227919846714776579276362657195461293123285885266188961672264337849999124557241892653479144315331927629615739891538124114826861491175168741946632383357392761566119686773568238929765982277583976864581154525458245453824166847538963791856994885677291963814236743528848348334888522145216858975435876293992342652967381787351224997316762794972571684522872659274684638964778171327521317921869942167141341533257316418837941841635679712244811527943332429752235933936224217617571195373176582914337218536192238656761142966771196185387374745554187114923921533392111144128234922382137776282622944483978836728332124814972339174446525923799462867775453197313855612261737927876617526723865155262122814557865511214743145758747586448433468811987812397161244965211768824297939884881967176753123219555415988445768487493926775792282399668333791398283732177994318682724829387411768547392249491648868449347275958231528535471736867625625254534246263824523782618832228444377263145858128884819589695464765441876581811838474689968389711887344218484478961369912416511179786281276734245158746396843757145854653837468854376748493359342312572251268477351671689956468393948623919173267562168856164851712965955586227624925964333695956393284864656289967332398255165386436126165182994488284754465839587985362435277753856585439346361113551671672134451838583257787532383733595474253134535756314722515753129286412163187915231186618882273949531122333255133223932785476654773359592147156463949356837589355462422536882337455281319432374636938862887391344798125737225597739529157513819411578462173543718478221135571673287253968937458472551167466435452839517963782379274192384662588557356299549382874551293743484669752236182698748929353957171586733377614185416929857115949418252476498242252342262483226565959775423223696519342796465815283343599573611863451941887535245135922644217316251721169756556495569427283981341363646146297487654437495713421364869147675315384245816813835761784881191247856114854818867134723496895842782819611562428878813393536449686794392894279681114134647535844172515858743861682987722314237419669147689339673596493357221274113923745666332378521284411686579268847897349274663364248729459883234491269644263373596761872195994151774717614947494139184883137394863252697213423631725237382972226518678388268744654837198355328974347925636721176316613856465336625218212932881921467289812276187854631112112174486784748399785275378523352721395845868166442992621819249275995787885143392317846849889735418333263326868488775634945976685521162336619365366119144375913677648575131947926597422924444149643739837864153687692838583648919331634414118137189119153583739274566362928143419817795317912831813818644243765689457393227452855314284939291256835577587625429431767326115523984352982666746473592586872156611328748269631447768266413713694855732413977747365174895974141398988797381713656331789335252836638391999998781279431793498434535645692841183559323244643893361384556762647334633258691452811695567536937414678723844486753128926941971424525482152921338923538682721682311444842542837549637362564668753755221544346744351845164683574358296449263851873216667917249942582294158845744677843146769241425729612835166714623713428717396649185194391198334412471255198429724722327211181899758977846516966841112214239588613724879189546764582716746174246152453449134748826763714958574415293749964884751152635957772471535485274671542772451954484892616643416159325479514856921974214942872765335757483321715427347191484322449621791772964559477527699778911157327634148676123198632133592476733169389913799623646935658122571811111867184619365544711878198615713998195117177636736293155536349879952441439566289942839199423761863623312461211247248354933255818417274696488965387716784353315722453311563687133148211458216224922795764545763668367269765841188311741958171452465312163347182234938621211815276137714721346785934378614331361483513856327391553795814313242611588425285571631545184251436193936921545943125575955174745991342672367297248258639843224545712129643547279919447391884574615183314151741726596574543136453342798657332135378867676592512884971155471665626246731184266825198565756549947925854996375662299785513497496673311582373275552334825515333895257246942173223194189395365354297246412272484979131996916914866713961771321949697763588163419892893165856187537463963825262823571714934277693643648447894161312264192817274988642159757352841439523486674983212611988157164255616537151956131837874694629615769767969128424975149986196472241443179874628571376918478948366124413864742579323273524725656362831554898378273432231918853355771965155537797936367432325923343749491152797858766611239544361126654853153116351861951842374785347628622233215854585532882462978459814127765466734685965921332873631422283471912224385363166611984472326889583235444954395879515512214822482981125221476564913129735145444367734591832121744638213225772775387312175166398244383761551288791577533294547816783354485833523319864973185444951584216462749971319528863238239476358252936229899667898277152873215315599493724819569543776319669476315245815698252726798251976461141424897272318755168542229196416467223179357862294679587776384667199267531216183379113627174242122895396322685394679229155212934562436311386366355215637754854764586371765676474682432889532198598725585355326813691755124146196553217324614962555994634655474516855965263837491855466816323621826585341965245927851339365329312983386777461755852683338576772232673213517197916866352681442911982534386839861948225881294737265685488412427514242111881932727989173689145287727917625133521455965582195369336368746295415462667142635262741211365582371355485965893797511637591456361378885861547147869663829386294756736466935192641437661795678631282284119693815164544522647396275478581819542969113373379555333497767177618335626926944714119221692361598322366684279788595914749225386442376228599114958965541174199193462892873593128132995572692948524841365635895519966771259477265314521228185297335935774921328828614946845156844213318446525562798444317992636667564483165595684436534954864627653174829654812639484221113282761572637131194822574224498499471345934722626559147689842615847618557624614188932747885563912871755283149658553537717246625477726424166843742276114617229559814496233825814114846333988474683937162372536934912211437883376193749772564637611669455468233189535743116986311314363783292668944496318321789173581446427436221299784786626582943748156484825593865351692834223317545369463466754713934286212294553249393143161643681339345883755552574281344378887928821663352123972943372211898324857253953321167149569186589812697211892618577991788215712586899982848658953716773744259158559422558119192356351619413286895188887799178772468984344221973127352258993649296676713748115453385986912733985126754866956183645124488666392365236471191341869139172425684314795597332522926932156973531421596733245535119253735722157543353376676448913383416212374721792557552115196372593371584548332788313568353411415412131419834621288813785694975494456952144253712268922725931418156876931151652639316436366384472322272253556161516619144643629523299295558515776146539252287715866634468361931117233126866955248657856975965519575178451116623564836978256329289126953199931236986611112386552366987857693882428998846481436573847353951243913665616178746963269157662793562115813767216789563932288715577229877117959214684738741493987934741642127376721387443554215998347441542567747426753217341754159354521814656828784947234547211885578442221978422278456238231956711997364737647845699855367887644573474457932269599574995936982118173616352123655281574459481796195478834283991243913813572484694182122359564472244446172148824392319987365311827346794697529435723492924859687768438727279623385748316344912546394555141112933878831635719413234927721648641416623255892751673312697143549913488552213595298587588615873972477133531665189892977184546249142351731617671142877875592963454391848677346161356915156677523326398443789965769883327713655814157869384946631974421934214646288475598439281369176312384252363891791753627198962238616426789641859163365425689998743291371227231739166134193153764271829991299136849142994493241334346129314267963633744515147252642796151425381334381964653489794228225987381914384428541111275172316317731159132945783512877913266294628253987768566696397833756237639461551849381639583254243525861548622138683943723518535787217525191987793171166938793561998638211217599923529771229274916975195534696347771851719791236487193635136882152431352344474737318373383576667487193252378618635927826829443435148424574436176969251537585776454857189674159458813282556677357286925113336432384347915462895164629725286873366715351623757754721812533165847454377874816553216632312586661339476184594845118125357673838345619697966778988421197858557146531663268499628848698791333129443759311174675644445418437358435197755217684982126187772825554744229439698471882483996194943689589417139687689289225752477793415962811315591822574348654184541353961127947774849763572878545869127115413536924762823512824645796494657695352262127337586164712696849128378212628683253935358253794252217733687351691219226285534212598897178372634269385122123113432242458556783638668981395747385743191783726626322479622713157334354386444198625953883168176252472457195852494725454645871817589522738995889528471894864487951834477731529115344285515262972672524651353558231929753779548178262465356255274629488152856677149971257748661555176589185271235941762841121855662165427429597159375461274158591171959141697885961865684797392237598145421556729665945645336788612859199528355971235854168513548652185946863368655459346816448231974711937593474323658613235531395127618537141551876667147641196568612162272296819652742745442164144919676612473162734236916453123728869357843193865714656682541445821784621473813358438988229755986528539146729956983965289325221453252714248256462462955546627528543663186516487799278214756583916845356972986662684542463277828988384492188983142641186769445238113742516337358362118912334393137831646779779151199139611171444849527423976356627438212591712911687514592368447516991372526479317131218579367447679888411951962918175991221358129782757724817422759293825922538369258278236735427129373269226821114468275366327893833672974189797833912854645234857599847255582128499528736242227799633185552117381286232114665783867543254171959411987394582857586632147685187764769574432831253459947647516575895138369716671212545322654637726531418568132449264735239739253661858773722665935496919783313725524641213633145793718937443981992313912619398378725899426527425175696959857794993784133663877411269981712278459272485573716216319298289164388135484517384271575711829489537431314829875989925116755421457785145632488432165665382953883947723421686319298446961142956735833797389582587756111837128691782933216334664758545875226853431145333647811681111187469781124848892137469788172928585921162728378223434534521145631741951642281597748677417811717913485756918514425535722676352168431878962286152583857688581233239378263129952639588412537752579699372215426424242218243132283271453592254134259381654194672445388257114649463542488541272187286237459921397654686214547111288293588564359244213711178745936551232738515763161934364465421926389853723691286547182331952771465957593161168333185463312557853183343264855594115685363217422632218691451615944877244418531458773716325629255374692371424438661327346699565828275539861676968526125655399558922142632942545867352364771287465368817685595497215259337711766726279957436223899444895167298127838659386244171953433721142524282427575935321772642828237596487621263349787177532251255692896224973767188136888199529892633498337222887748261447816588276416517844422711373321116882885361399288573511785291666485511777728665392685163645289111257725836843122844652733872117194529639357361155448359127715295729192182463647453613979235514937182419542613613741486851639116653516437134946265244728651242329585677311975548731731353749814366536966743831912378175131463678813976944437556543783478449882724972157479821761385274838637688325334125194835927739774989786371982214116441778248885256245914871551324138189753764967985917722637117555155535846128359716359252885428234155185151529725241694955467178752633762235634728722519334644287145435544414975774726951583626315539782861265645889573731176723566839835528655112128777253459312558442422979963472799981877855776244795988771136349754398185168691944441189421686761734511533841381948335924899535985952661996171663976117963663711497116858557843526796947365113839636441956158571989185181857374571463727673488588262846461568474447873629546479444496994371727166663521193513582433197897373176812116125958361791371374928412572536138776665166698623112792916996552448762563769169123582741698952118474331889452827296995197552927756177879512634452839446673531737184833988565456822785386859638246276141638151931529453452192913317432879894348841594127617922852353166537231846115721645153766842724774173292559118598364263283597486775994116799758933788541465883361978593178118147712557974884273291973821784865697185432441743596462991284237742474927691147551828439113851624869723111813462735233242693678357855216883287122491439441126939565259779117489458913623635534421154841694187216324745486346342819686351124887497854644845233223577642988669359491338298227835834733363139834152336212822482427281235751316176112244196944885476151869851561423382966165654925179141377158641265842214343956964116857362314396342457866585543521389427249748272952548845933379632472272652299729544184414386142278339131743928327861941943237296782291466383175968174376679375378945345756367666381599698114634259865219966524624122586957187661383782643591469671355219952229867482435611371917826544611881991215615293443961942578568152316397147227257372543263461939362767242933813843494155133428141518134569919613147889661911554765796666492616352569437895755838947632451781835519231838739446331983532214269848551615644262281473573833132482476856351937192279626545927342293517616452922565831253325513623841174726422693836447542448659724838992586387126366559422656278276775256375922579118735498223328633192779269644157765831794487478399527446822833148549674975127922912783136128379826899953597824732455424557833959425181445536241481214546443596567791676632664595645974939994478898621346364728219588232381166778241149786349462239474794413389595917515954233292748844978474935522335554775575495673634331734119654325791843893232742218141636214528835565347474372612888998435219223954884153366719172768149629662788915311977129763627286782764752693716381574325892856643316868721459269954552382712371266233274847917148411345621299689733424225435574799945416635658129127999939556618475641681115128339866371444361787167479635256623752349599639767359734379683389776528549474843321552656266868621283119355428714424897699867447623377623264448667164437542977792961377482238764927958336746541538273679796715553544843321817633147423633262952887427664375141929691973287642274874677546546676138755345683157714758342625746745526247397744638597423632737345796418194962373763382615263196618624241559622224354768433875336687514423645568557989165298661537481612926763183864192814526615357428324649354591172838915248674945233729766125359172328236452581525122446175185969292884357312318195434763234532722553449254162492318519879735937751461184176292814195656116285135387334871439329332917443122878347393844192632446818741186761192833523517892716175134973369454176431476168948798882625713871576735492174861873657718848748133373886991596316314739548814169947337915153123525919324711628281848632442457271271241624493467689593219859399352721475714293413897788833676981272652291941981634419645231565712641946419424981758319689267696162861554738819867284849668929826481433221281566225424131732932619384999991695819675214346654376885197132572874626969425192645837515897231291189981613328368683776283984115181538734527637725215452182813636423473194578811527524979719731983379781748822811865256782614912157626855691342672753225653372918248912359311567122513723623249731713775244944338952888325826988885898637841562683732413729211634231511777742828166312524573529716431679622326795228119574311494918344622659292332274345585974227461619892968513898414625763132211511833341889161985318344157933879671966993786381392529645853144886628358112836816474619232999823297489162172179319319859446718885398938829557359597577211991994119726213231281932651198177258338232913568873422426955455449931886985151873569549985334578367859634832932481346392471453732513115454225824583425321435782498575515288762484336557524316321973943833247183924142589844633574982241411841873451563563856914174472254717411145125719242218186431352446139127788338115627987524143543733345189267742411426539784347846159622447412351134143357679881785273385647933261925631114859115822115211285541622475383915199174227766434872958331472124175583667526594768515223471315136222418997897427375651289177993927253846825648561641445744563938247414885982243986435361349672736427342229845331552383672817487965519976959221293891299284536683567955158358422373623189871973232551744685721438878825471268737686634945185855383289817383993877353431634353158561259242529282313731168897467597354167146635867454851929649598224961142546783237485912766323916736451758756585362357832926196221473112215267665228174136118845843495111343694174336973351139986173464358877191125733972177889691555263863128452435419287625568827353344982315985946232179588178145349512873586255645538856468381278671492985769119174133815554983131713759692962216265173897973993437933238898154542272286161218822582313393324945312423125834696122756958587677773493947924358173633355779568757782915949456183656511626454916356199822519637317227121342654916131175473836381992536213349252596274348712295753188431479943586352131266771347116243456642637716635543688926624268471571739663862376613449531475193393652624247464468157292197592253555971798582518325746388353413345175692965473326924719281616379943594452872826456636531246618692333939533924213521716555676172663581474913972419517489879817322143564522546725742222285722622836177321277884192136953377496361167761572139738621575117547838331433263822976946636971125623634844289196348287979354796927413172188612751373415242457361793745976958284486925929424437954559132297654816176985151731788656163612518511651488977221334645574959146986857157729839983752458792594979795434315888164728654786918993234456917162242353732516874525212489134277619524551616961384968575321743126446185439474139238877314337645417423315838877862521954158413223843689173748541833486236139331457129117313187511649477667964341274955673159839117939185595581358434587658676534559536193569566422695626778955246331532547425548927417655161699581246124139983189159485153386815111118565215249356615151524917799372681616781212893542279448622313732188442685673521282266255572363447211318239251322594281794976823395272436295557166262728365844788792798581461231257764747389152772239914529745652367696381746295248637422957953128186829637887567283849419925863762842697863112346554223736381846515323997338328732862119525212456674719421576634995598786264125476321761746664651417835421612845686943642693649247388528865616784145233923594581271246663896824282298988138526537118883519414432273483518974431231655476935627924154498717914516141933126122958521259355278332286951989588896168975821382192567823531237138672338583752931421731715369382447563886314267574193744144931751344923325634734928448921115646586978963211954652224458694881544346652656851222218623686625226795683227984435935532322289776479299235657841945584518427765494223133717325362911198427335375784236597231492333495259929272643736472256543311212974414313721927929898433851713282748592394345159256753833252554154672411785353677274458565423529711812115975526311287144571142578337735137437833793712585599361968491126485722529369978562398998568154896268294415366435347727959235151686356718177211759754734863164244537551281184197853134836391161985761519135932517322418589776586745846153333888921877272138592295742719388873131548628143199355148531597757531389768579274514169553846453691811357755294451463858881981423339231961655123697977279151583654159975375417465165157217854765456275345621227432231315188192475338271143311572436914497732672453631154467727598466842271632837432765514343832115182958372168138126185188327599747841571266452999328141217981787571646179855533515399525147536882615256173354363726145577762135765962892616282524941814438447255311942791111244286975522939666681964277868182424944443993988945781731285768415326856348123177547573424858543992258596943148934646334324841164386357887856313817364331327456422586581846575595281446236332199981693199571781416477546784134491728765893786946642756516151797447813224111568695282953696233912787679522475775355549115135388497578773238795226776716331948937784215269456678662566854349493139768274855386575767867636892531469378536728343417971977839288434932994724178616175134766789631266851513614218575582378933251756375942263525978222462132343222512397888993155432839796152285126541414663282811888211536196242866346841287935878134571415714567948245162343726973757913618995882471158568763659557196419267194526811938731619114315419973943326287971676995472942283595694672712932892192694395552878914314162252153769473289537819143184782734295877496889362511248732973943328338236355465557392684489973144485962137687616474135679941451475963734267372766372556469293125534357197516516497548267456216126925626217569651594812455212897615939773431111246257688274857811421971961517679254751916793827392233443322588533281731484413528586564885554917116851215446579343824938169665472997221691963716711617859625313515953762363739929542975985318616263657791496495773462331821513341439832472356824525892639327151498766394578355891421995422822433132378971731894546544924535197465736114274624518228235853525354617315327163385259333934121335351934229513211821293719356261681932555569923513299323755824823672341698229917137387373237826514212864373466126715949239182831826737942181947753878444612394634243638795969171549116814666428763874638443922284191185665858945556628714489557967545148412172432198675511814119516541519166793232221293959697442867913286436412942825424299634427345671971986494583969162872516368344558441277751184848854525647256558115227448198977843155591387778822964484136788359211527589678777145326776679219168328693521981697914353531218283516945152836126546589648268862351347723411337334979462174978533984785477172922367374754514841458753911376875442653995955219365397294937827115369524818291953222928647544826777262573891841242749886211695472962622419466915217568672728216783692365478957144735388415115186643349659147446335468733543272126614646123779887866236963313881519137445429724267672148642129842236448359974194159815712493621733163118427127481847275266163393921495228737311262694879993514469488896934229721413877621135422983764818522157463293477136258513158349433192723757292756682856351113325191326859429123861666258846161141823871943177753163296786686258563954835182912799434395284327554734587552631774634821461779886767245267926572146572795266859981692152263925714116525358765218243322882736299979427534181736336345941891214941754119134626997431488514918364114793779113177274438165962456549928844169923845625279272519296381469374931519477195746631283972645159892354663966151497514575845661673734451118831715864567356395138114924924691977143514648249721754432273585997616511751113393341521727751549934896952764134825471235762883932795117637799916423735636389779719572184517678517251884285365231663286715133985111599785156558969561265758354652368621127773434457645145818326173955694797219483447496261154933844492536111153454113117622252394191515816745996488131574675462351778755942519851568693114844347433376115212662546271928652316381189796448458882933528634862826491793653643991837821591616817914663629796994534786947829251849429389726585527758659941341656289272953572564742178661124872324487856974812891526488158214517739937363618556342144119328892833592844567184427352796464189422491431132149195428745765371544347811528933915619364487682844887826439164261297764232323221241137984862391686398374183578297923263272982727253938756556941428295895759941449839962544844982832193413417914296555661788676496722813287694948961538232994631611856624655366442982936146181124112534117792237286119271533737247853551797743879764464988339753351623996626329158841735851141624818413943588365231839187335457996533123466512241392764114546476387131238495877452565113471554719767611936258692246232541119279642927279174996543122986113414313412678249846277431797278797436582996279456437447162766827918525616375843249714798452661292718511524225151617433714491242916882988587346461129391541112247335399617246219936384383384795986383318747762462841934113137187429321179992681626671531553346463328351459563435953449648875877357493398148945462936751431595134821246555893411415276862129858778467999491633745855262462263878599346178447412771321423112432234297131396424974665949647694156388622111312643555728866113281982978686174425448488174581576416662978884513161517175711657816899482724825148616659426515123666165186629349822121126631523875641269585245118258368572413589456759724991734182172231596781556431665798752764241382345255229344578941117136481813995619629168477323417341584893267467127728472422386943559141685368761352892513512461399861674252859872227639246626439332442874285679578614933167286171639191117784125331134272315894371178873578356633643181134861926143483546586122368842631372379924271719325698548239338492193113597976928547977926398471141185465143477715396539759781782745823744116553416676817376876816665225311152888755782779991539633867782791639888337631963243197771287263113264981388547792931535329957231461267264869256533152715633926435879925834128886311683635169394817871298279847246855327693357395339642671166143746442431544196319393523635986235299453574998611212578522947935862593185191187126211125628629524944151933851345471949465842717124846951759997297765886253292573695729323735938524575115152646624332979811447323831455471594423246295983678511837253165854929138241527246675291386555889491113853233619317895227573318612884599887747781398833694548919932142383685972351942937315537548964214974998624688481451228721129934774583812477116558198175264416234863314114588428843593215831519454467287914584569351323454556187222987672969918552542238111616147169319885833574437119653248564533869994489249124818778911882299715633597969474222624973847167117854394932518739477848654826343412242164917129925776477879474887753523267931338411171222233989541282183449381115343734284967997645847632347872985446511681839615131249855979615836755122379454894725195422784496794622585215539735354914989141619673278397479545713968268679783663141737159887437966965177775884667969133548968347988962884667242144652721522642162333724488225519498756871941775982117753464366514193831555355564375754281522483516689397469449429445483357899295956362936485397748629221811295231321743486362165414382665339224652596236241923521833299986352159593232334443427663216952872284976621119526229864217828199955215127236611384682562149661576389132469219835745769916516897322773553694797863633571442359922331915346373963364658741541624734487648718479878111667336599732746968745593619528879919344593554138723245123684375932587653385871752589165596369869727342565133778143953245491164554661918742948319842366124676362653546732571375998684112291994268656377281544138271318468268343826654193633821986711135638642133826512267616493846736777163561942329735722614793868315539149241712778127928999459682278592745227724258193133534478141988651951516944834997823594362429965714674115412938677771173514693459969337919664314389254812496931775193392456194777987357645363326555853265924329922914158687254114395696747236633718621681217123524483333526736255395691197954216731265313157898553546737592883367552393864728796629633621455959319352391677727568678738785637464571717592494632167865341173626142442722424292489565682911412815514724773672775654733612449668541785743848323863242444256858485911645237194123581537541314995492897137994174231599233666699955632878141638428428178235443874612668955495492788772677723829354357235178986684588512521117122752445379731685927711411664712487951744243391867524825462188671992348696542731225321452531332325383423685964727255265421322856552122886842377196692332251331866746184693447541526791141122392141771545597823252298138156165312266156411643528998896829176194395299598421943756242451437442232542762498952917534557272688193815434465895687325445783327988635327852664683973781559483785852116261533288325732817687875281278732463337761838232272338311167974636943673851319687587283422821758418623251322386728278151926192168178259826764354771226154291868415169791394795436696761135992975298867797151839417554838647153381361236429169587733893193166477154251787499823212688576217984317212738251647241918976448494247661552954163299536642452729823538186822514863176433182645564474569122481746445441847993935947287885951347257799162967974375494595164895171746959613888842545377238256981628816551144391748224763398372489763194385325331273836764893719576119925923484569866729123284228783718518214646246997629795474339597811128681257245413161593577482815319578617375511283966979377696483716114356533634826388618198335724934425798372362148298855127817319684429411617556228211798618745762364351995729671189812842621117161372677869928893391458198926163939265989317535396874793411819459593945482693161552892891624972932277583376559189245553726455851232112493441992475973518334333227581536477412398493533544199347724176597426257394927471889592717641733954925632171441686615684825474415611728898314921142697485652386553924735235123111643153561482458637171981179218366358716682991192638566324589498341693966796548336369629885598696283171323551381865259588432193456587745692456446825372791372465317465946819458949128378748291139438873386694756526515127613641293278779859568238285399666234377398534888341754486329127247938391884376325885245938368377234568941518272257865673764664822178997934938376912496776817225813198913768251139742287982884775344244941924679186883728326742133443156252859748463137622413842142113579576527428988492324652659258889726691564611578246621225122654682357852154976522288984992948137816842921592239167879536922738321666184776712257173463935816732233777567434382484371414389936845181623827139625557943399167156449646441198334772314265722479598511759427721537521897685865637451353177323223165284313973459951351156922683856112989944742149924379772182448331755326936849885836511863958112931714472212979727453381745819792198749486961445177726158676312854338313453499555228423934531665733683322166812325556779768815623837813238877926294341911313198815615921946937355964732481178228844792756622129875688321441279542667362722372769554463995854938554988945633386184481139695179711119836761879146268191582584518344293641222932999475412538315922131673362888984488818765675152573282148131893546532472692392395515619691552465586772446168112695248496787824725555232983655715946345429925768395552228764274539156333615968943639717513462933375353946983893871376932527949854952242929793851766689999269531677715152621186747251833871895637816752424915512179652688196256889955246561111541463564499776621569259562839916798695425138172863611119943749238716654591163175123881497134256271599856166987711678399437999471339224238296862873366767576249158731871197636396247586284642424323488768287164258671519928552577291224486375865952118525232999544725947877224335336655538349691141129132275773578348696713914353288147388394282719413938887131277235288679243347767669777875273414434173253213928797664418764317489418215572663185669935169288985937627362236161481433897624437714593595627586799162696539972852668625835521183517256239234293144679917121439972569821449576475212392725721134669786622368431789766354985239185948977956849226681814796789476427779317595962524369759985521537385513211786896112586913432646696145784333243262174153998113442741374972781111523224549397727224684379347234125191424454439395121537396666171952657291138354367956519395519688619297982291574219433914533954225981338892373793282472253318849821984467428631441981216536898569652181648489515362132612719165831252299348933951291746264148289396925318194137112973647193885484165571137944769528546696249197263986712665576647656221931227814815414833878116582186317491221154878264641352374815459444474947519124134523643913393719225369384343858464648117137523332231447115737348419293127787491751835334129381994938392735138264638246959383715356277164344467395276147315539171594537564395187664565951843144914639611547589498963114338414545925425362678363311885249782126324889775413483739333698596411271466271225343782998417548243181794478574386459415278142131969617452181251621161387223578227554182598426635581718164683376125859626714138867444934341391397373656957211637126654447877618931224152151134852726779874749424413868583477328429859924931121184251853283776519712436285813344681925392235235737792159982524741437684555891268367977296217641778315875782462134729696262747365359787434218757467225651445725997159268899466741391563515845188345383536968541118587194696597119236223887664689761635281866932985762932573787924334675786168442971197236362574251845868332433712825671253441754186894211337871474227179211387516257967357487148843245463941375468322613977354833549482599995535289136341568496786149216749464745442888232638973573692969777418768758282365876135317862316372361821132543861343211393995921394675314893464548227343718433174539364351626168736563413565677942861661799139334147212551883157152942556281188344733966166328413725989445157615687438176681329531786587922124971576777358645631423964241231447635829575448154593666288426542942459474299381165271891722225424783267777736125454324459748882375433546274859658646798743979669281415958931624373819129467571969125722265536959787663638676137524257839414911969256244333544641294662518817575534331484134697779531196859514741635723124366171941456416929557954325689934922871422842635611283911795746117839493251425653128557825769981664279287336757825411297314841829816389664472346965359591128339954325812449617475347266413684185262225864597883873994467727627984758284152738763445119674721675845933592791166177169485451342964534519429318425566579931169432778714931748361736838626283551614499523915623556537183822676343453175166122834246554293797545769624636315592941418694881691473417164735331421612398362449217113827199264159321267325225534898837961237184212931879589158169272898573158162112719953137778815493975912712927466279799786313228296811997722153227153442861717474462143458971574113814326312832623229853392946373496389926857344189134517473561455566398497498268942829472242115991315743713431663184319383353295652241565719686872957562838966999243848912289829999763561244896331426492916894975571874729938742497467452926475823473327721163123212957263414177316578258295682511873313737648897782329666469369556182386178426391165611985316211757349812231129222264635324685998817388286462145935878574997911565937443734471386312998114345753179112467768556647124118622183224235473215226375776136662275461381565328529743865816721488229241326686768756752852125821531841192742335621893462894545325481341328795329869125725828467736765635336491653728388964935162627486955882383446256391214439792328676858859545889434433193236466115339958854186647137442189756421154421153499954822616245169395184344625464155244258454322252159717299935648898311491634651562682619473518787245977416712722612198536648924817359847489856274532351135655146245755261328379199781329177763446147412625683853351314186965717549651461127779113889566445722483383576895184648644722412451683675239248512865635638768523848566889721243947257426547932471481891182431287421729875117151359915863998933821178853977446469676396341363158986584511611361296897377178713492874761216712387241871984275114711563112834896794713776443852186373438569867532933752242391849798692258566181482537872678314796568977495141154789749524639822494147272576311662386841743495282678793551668369353692941776719265186488142524951554627662982495375584113267493723553797794619555691454323594482895932692345592776177836346115359849964719839444917823914892199575833956475327255978487776132211446255391989554936128293435575231116629769418821995741755117847576515767788961831369651754637245581982532657848935366359323426263329487527211331627225477411569644277835284183412661288618312738548541111645532638612644555964521934397436781228371376119634346544865744885484275562939224455865866494959793159482828532347352725576244343198831135761396129665142331831533744997354532458181848854241541719511432352927132463159595256373612387944448487427554971837176714435429241571711783422132963112925713698392321422493546976766567296279469931246541469443721535754124536132726465476323296643326775686924734494267289329828194311775213877414731674537112862968672521758295444344187814965251522969271754915884659267774244296819144177874789677832363326693598345882916115816552731264851262449435379195269449559542992545738128424116163391863159775132999685854997546654276552253649648464528422216391399323131968662532918998833135164576521631879394345222115213252718564927171522385567522625151215641717427715512553197532262714537224894435135261427691451765979571325847443232144963175785726632132932728936376957918846852194938466717551628131963424418847749131981658674414217221791795228939289426372541751128792865576897876292774769458412175378339422827865513628921395748918146116529125572815321178613956587275375295881314486124519534271336947443482132314799636852853281347615675778883667323451844168628734733461944173379688177775265838656783881936385282115654383315313414299715171292643682493653685769153653352484456357345756576447545827677992979791941194774567245316152418947862233531751392848272946582637792276115833311892945828876514958834678542655815426621839726389498675515734887271811362771699611753555911964471226798952822251816383323718785949654849212637158638492411339195679685426773367746966187648812157933237167357882717637313639597796542658496823374482751655366161674523311263299287862216149165872479197166212133378856646594974734932364854931373434649957241525564772185166769375875541657671448564971845498231157414736925931657143155396621843144183658695428537437845554554613518273211653159984936693953836484119287856998398374421635563483441211958322285887363875511249424337258119253522484378918333989367777217918316585483542791342571152785891576114267152564412798388494672834246712172929322338526988975515548278662476587234298258648121231691116833852617497579454979851364191438383284779266163596779867565279184716545485817312939227839436685183545945281374752487864335789359241345933132481478485289397223298466581345162664637757988311881369549662471732249922964141465154242797271654232382383811871212869873449251922192717932485647249811466856165768892563128896224332765224525886878231297151376691153297991541353323182878541813197265675673199486471382394517142238728782167497913139382635364767452133946799514662834697919271255712613181313633459467383228838289841267191762283378459399197322424364282193716222732741641723366343849153649635311259464179948646464929717147995325138834965372774876464226229429326842746643757133487429424327417323385316647191973591626217239436431787216326975823332674634164279339636574719473197347883347595382212288875999315588395859862153389227366328523421161623654944134519337342494565331923582663728992554796331896363753818628279445966646623523445767217819671735532556544848482595944792852118488377677125595414118728562528728628382226792539963276623369772133648488157891687929617789864762436226523161616299212696966944881149948923522829683696512892877713594848134983751831248423664423481326453427163512915575364746241334499695639825232315748541643685998143442479252222123495757285243331662926641774175155312163984443894272241417155376266435985386639265179624678629653147446937149869332322289133214378483223128628389235569272518476218423221228277584965318337551571817758233963398267222559987396433469583134247174289124286128752745787438854927275791749269913419156361634556949221935145372941975329143572927734163656274828936764642365536253244721779129583731577657692265787814363336984669935758218694689736222367794465785926376268944556846513663588326747626316512816628366361523919443428275273454642119163295959913693164765682551973371415394515243751241313262491757665316353699587122886453377151127394946149599445427347695822668929513989511187518138755119351424922131994481771342587976831782472352481542323719312137882168344593653664579974449744932574973749796655682122248711525246666147373183949945787776188517194988156435139338445573964588674583737856793118113744876767332212672662144623265419677727687961367862937316851483476377483359472241666571312141461191334157587937551256975771311531736121541721766823852856134666243879975711546447167934156252225232459548713131797127628174266589281932858122798142958812472798971865557372637981726799913269925985291921397895214829133673664671248181429198996211878555949491693862342373274749811662161693573153958686383593984216381577315144565582726139661265469213358556337361246165425294556262824534456916139871125749468145331545229616291672884363352865225468487696332574823957983246261843347667423598178763649427155211187595497834844389663586341298584899587863651515915522334127211434698316436188155821933459835337376855746621659993993963483747811483678215637876296233888335942436598462169822498447556675195379443392856411883116144898993321648648633863612727359353951725438173146876565943143356639474419575131464161462859164165414611221332833644594984165414655588895231224582322932388543747259211741167585721468482591186886136998885432382194696663429177835944476886795956635747761251328185667174267178978525155822285254211363444943285474149165612267236784634675835594412959285838449569582633371761453442295814725539474293434262953244753877441332837156189986427566937641821322692957522864737721565933876213963412559398551634654391211671978236171371152958253781122148858542369333166824434933764148486427886541345568191665386463458113595454791943958766921997518269478615164834455966922753847859423482242953628278924821897289519622478997379828812897511545263952779956466211475978899931215533443883791861696629174116813689492171971443372921521317637176688612437955764914747422634121136438714111735178227431996834362277112394129138965522395177645521389466221864717556842221369413824491942374674548386423318535736642121197474445785449989724282552846268797896232717144669431487184717935188454547674619311617145968842382754811927416181285442473231983892633965152839478784185525972518588324111792514881442643821152743586482428916455166621792632351116381996769338244323133897757766143386972258469563926427768112487444677751266859429586534578427897129143615821967769678575798285151576167962324794275282961791585375989333324546181137681385138642254565182531431714316474189111629664514881284855775792131261631657225162273313545619342725679133729458219621725779762555377129727475627241235892892165132767146369531813983959656656882758764469395654432338674477545717727446949287455198682321282779962572813845728241881581536949143127344248671447863791975835812665176334925496284967812525517717829365969979216733985564548295735532426425561611132184868942622529145627887421138747119797921612244185962776227214553649538217544959172374671499363943453188545713686431787642336534381239487345337745413862738555146713434491279822677627347956129763944819377581748931311324691668426447497842215236863461233957819584549519345827713224747511825365689843771625962653991547991622553823311636782445676526267957384542577176332887659893955121242264449595428121774252752762597725816177514586865375242861416944397195921789296775289162442645963354689249276518527167454434763654412839248338339134675122226842455565534184965968845628521334667452277875169677896236725962341339877351149353542184879569356215696841897632298437136741528331824567131777996823667444835141493683765234473721454369866168562627644626122319336251598941162997863461823569353465617664581455635277488196463375573897754762927294757771991351877241629242838134748317772988152744479941152821613248365263298312775513191748321138868887493986122364152541996441923268962422124333559648424436111245515971228738516685723724951915269946951317245218274916393343462384632546631468739725126146245841626132312165741146888289946117975152883311744484285683869723784457663122785731246855498338883312366595281249876179687519324642695157754664591881126171972227652889344585472661383984959126912556897332868311692925578515381434132538825864533724172961148165436974319591341841947797773443545368815248744511226614413836717177623264553646242862119342464393154143391192111658233498591656974231237392953517795711575452436311646664946976355122723886458516117855623494348931955184826916647491448738592434959522695662438217375633165619851286415197794292445311118966639752165983326363286852198191561678353264115764523916457123677669394668124449852833849331576174626837111568474148831878245251436979959799534851699326926252115615152527112219723477382322461543395154584541843619719438847572973964111347471957194939485311496924153213484257258354225527379188955354636565294641538121854975795716666244218119663255846886572576256534747296778782237248372169138737234448136857144845595134932736747544395499849241352546667937479367598581172284196511345299678844382212851557125584353223643179492827973595356146511479915782225451341634772174496284843867796897973153186735311165548249274266243268186449398821761225427365814548293294985653861325292735529657115949481178534375688983654657342515139685717972691126214263618773428443369697436152444795328773876196858155266131144183127788483643616142444374496166361186628194595862851796116675477976938147157977231966529685716686189833311215898287795213545239725252417115159333634692762393751418342417862118568992378893985916996352867
61381229444682751123189229136139566328155532474293521856451831951283765423114321946156884254997715861559739317544789351219483416945956295331394224824942733823261785683162534517183464828269938384116785634236356641925541778537215715858881825846455266453347478726461732148166316512364718511282813286238278445961155278585232163312441749938229485431563532473187351162165937635435365732495311481393451514219654852671961443111746688279356643649795288946564431492177426654831134111325517781487373391299723111453171312592552274473269444664636523954296522431247811562598125691571414848526312296164884821338166296733321767216241731482578745915587178698573191722433687714785774466174733226345135292884484216547487262142765311798121143645883184142523567798549519311952661438963259783575254484527219943324712819213287556454674973935996961318286544293951121536968495413451713154241964635458444452638213432382963714351562627434364872428315672994849475259118371588135991276449977239182486792266821532713661347677781947238321586519215839631861652555644111815951985547963515447841126426599274593384346891619221897754813225336117268245729818651327421878594165345782253129976772542497848263647133346292715948156411787476878354367253527636243772863438418827453763867273859843255527379259553631322659977452641919984679237336589231538523147318129991763813246874196524163825358569211614542587141193221666242734375767658651727633433235214415629555736679451555652643615484314336222915798415494511397393855693658146471837573716485758722137578353194736526511957927828235751859466318729634248647895565389317447375216381645798667266529888511225181733994232985885971887613772825952353348699955178445536975659388432356247644872333862415726996131132123359956482721821833549726178739796554476264921746571447133399644337127374622776398789167585992816345469214189759348955541621174625174481189194743112112935887299147621512683312768245895254263325823123537953236998831973222813642283431387617582975751516591936844919614594241898738373548581535992828229111981762978482572131949872751344963323233722348962626125649753411316353345644567515989417296357523952645252961213143552337611891746947233852398961719777562291691825232537319724989528776647146954232477624598243515697322665494377379312141215897427117826846794964416455911997387553355224522764529572372679484816552111828187675986511517681781757548716752995361661713727937747282815446249585182235644181598566611535667133941477743863862782548267549933937264759654476438767215254545517618684467446934798764723938994246112381769974832411589562448768479773251642342782186881136557984581435397866762921391662312331881176948362184719272545756215645164879136599113578126857665339428587447886842319471199496331411999817451238992736382335965976567437867483717543818111112768296372744518564853273119155879459299516257633956128878262143338129749266886998778228466638836865692433664655698282869927834417471455965921194237831381985694335954286255617265641382577362175434136474181642926469347297519273561383149359716959546634633583394788497813316156971171157928381526137719994437329837361947651313294174853889437196269294822872359293632317923927263397989779396643163731942927252311495168323332254333347742866512919869144691111915394479876997763961514949624514429841774278691951727348219296626597449431242183119323659962484335113342115949772211687418493184622588383635645766284792251978179513792815445314247645883176447256169712142887939349687482898331167771242746533727651422179115857432288124573825624424869668177423968225694542656175965775644895548364351976447898689985116829831574831268836251154936211838391758614125567587128452953284846746287844354656996619394938656858942161569781616228341646558963322753413295871945822362715463913212915531918675849553224516788878173972528475224629679743442792647424283198517177258446614227181576159444124129721266132111274374437128814127428783421323994461123199437632799364457534713561278445758491372656228647975996724828482531794929976724274143367258211254426747187584579525885995527587213685124648312268632361478948558679912475773539366977167486977645819641665436187495842677287215728736514799436996798435473918825171287218335218424283589759423362195795535152699832112231464924325457876746389879242914725836782436641388157268923319633438233338189489811526456856238245986558355477695813911636915834328244224637417596371489113941126331466717678689981574363234343527323177725713483396186358439778748938466535741759171274496687852559825946932864565973121546177879818157316171481199723611121574412421699237598328922378892415467665334718622854683645412726469183616459134997214889358672817424512967418132219115138675917419172869542142685449749711959241618557227652963763292623816693245549342597642971269161141245699533978771428379631752779427922225497965273372886739262159572961641517889241777688443175888672831467248668751522965216868566533335437824655394451447635851493455915837512251713697189722766999962511653268811941254474724525141198644949245357723235382282789211376752391752599681276693575889623824463333258238655163238387881345447142968844827313711441744932825212761293919649737939279438887312992891133534911854664113872465959558399725632711424763313352849239483566977358579599593288628591197469272412835283473847297218748574721757897583286773918444128182454539966433131894932162352912254878132394514734761842353435165495168752544655983331253777317611724817471664147233844198282368936694412467884232366717336795427465476865733295834168899388597813628131162758229521926711742972914941552694399786332817221732788725664492481993599147545879372936231849543217513762549757262364928779239255595126935757479313155647353622359353968797667313642627723392236931331762431245428168627787625241338518225193318561989371464368255128294146871271612142859886738427369887258965424153422567743296684224326231591819271819195535415435974617693585621819743175624442471241616613218252198835878336413445511821348862496952662581531135582452757256755716972216297111987456935983373841991418554444659559584583436954726716426479649638121191616524411383479698445128561323418682319127729798647817456358148313876746178438671467557188818228458322991324269314367223369565775417733982557964999383773684552313414812551431819729381127246717997868221555329391298164588516866668831298167627866846561536322737997871523358913437743281582934129386452469214737719791495376429475517531723824999728966191436128671462852713598573451314694828537625561197167713833236983911493552372283652688479583646817311618714737533539844527124188553923128782538256763117291484697136493389335922458362476395334571713184888396116691451623581831238387313567222519564112326452849655492512252432651371796396911631465625533217417255563465326117746145557113944221715529426745696114653817352213914448828864541446786573355911538823694497411246927711511143675638374156435115784432937939494573268994685685446541819289337392371589317733335535767217458472371346462737558611235291285178419324715676221934236145712634566185853385515141758387386611476716856751837978811244172895991932523314264799186447122668714586721122982248969739999625226625623458771356976878233491924743344632276227642562896538381862531885831684161324927571732257291815954653192944656588734373452959515219846518873467916438521488396954341339145146689486777782353282144435879262649519856131961651797331515828239187272811111937493981138933762275917458749581582626448446183587276179282971978321442861258147372261327289992985836688742727156242841274573523298182152493328422949687152313547871985745211148592972462239635362637384486838582533626962264399147325334935231795615385358545691343541581338859611575472276163998226445239243959875696822667825749914925262197327524226139285641835213775487731588519724428222932384749674293871495655155116431732259392169938676676197143332183515515655744789653561163148952492294727578149973675734982281337915469299855921396134218111951486251662776515573494658919928133199221223157723976943961199688591155897512268471116986552714385237129867567775232747264733266311771928645572425617617685434535225264996721851458265898668287297674936822986713761145638218987547543444782921347961282237711574412912517356237664663919384932491126382757896451788693747595832693323635677981917846517523919772798611465283116167323188342734723266448841951344952596759264632973731427992211631669414486432484338676292181329637443121915911473877297627189769379343194744183453911476841117196595773538933187973917683421483832459137793426275854513295939883496679684429949726495241244919442226692816594241595515217584994938161948962895356127363227597164312615715656555792697164444915218273947859357415298371232777828235341455985981862638669459892168314366378737262328132933442612355796824514262456972736925172291388178616117197231572896592969994628427777149279157244111147328568384277761824465523532854581766413283685843388226467294575371743451221517367659443224243568139434181621513824395888344493751199829951678144433937347392715286151259262259756952483357527853662267356926764579392199867354343233922369229373678783795489362475455344456264154872897861761818469557177759633249428522526776138988881727129987443646888271684137327396184459113732782548392571549449583235545183855427346812656954943627311221224971335789985262449652526125579135387675369196988976769521991847987846625922581149717989395215886939368533493343258766124517243936646665395998199765897425558183391151379791556831464857172228823824673844214488327357725845259644263574437441343331242428861299133256771911731686466358559919271255832135278493271455492441716712971658442862132117183945857339433487633539691119351619489736399888238325586969194917136179368941426216269539349757258816583454585269976168443119284259733841194854233626299778671265547178192435237369274915713884769397176378278256561941765128482964227711138943434461646712438757871131943586888619141416579564418221627592422572157877681268418973584137713216666135825628325812939832417784365441382332536861328824143358712468266934943529355716169635496337315953343992251257661679498781769164788278399558899113177125483599813718561832656385645821474241214766813167517446657644319973883547629528154814329392446624692896174711992945654748473666247245731532298535129614789696753333393533289253389537256644222979115957745666692517694252162781583359453423676278684119152513241114843346169157532346971627116961592258527389925171383927123462134353771597613498948348398477299316489692621772582436587457557463923299344548585486178521229634993578446243433942672896121562843239835536653439974875367143821634954315441623597282568832527659549291295898143591337569954569258545356817475193395996143934724745133152141286893944464988585612436936695476233255146875828923879414216146849852931253164321595496823554256652514796341692431115965622529888131976856146948543415768511476185122967372948536669682257679463522762133322461757666655416173471994189252357315446953216541396667252181613629316498986833279588197227733437446354184377445917663283261692534191723152674341421485663729934263631512555527931254355443219796591288437465484273761951717517292141191933822448569897539848631463775613621521316362897384615985652322228686317614213955987278511683983935698749135953941154114545877519423781511268123329135224632113388161193551622247221998438183774523523363774412679548366745331787992864761522332845273628614297571812745147973578318554566415657711268171464242827239461678632363122113644649442166731942577985757286333457533679744974342463616581216599839499261952187444886162274886578844198828887574456158297255661732346929364433664356454616784721145117483481419321629144299842211837177386925153425954259886365282891882928877135198354963212644118967962735312682944614198155637243187693117342529994161318175424175543133435554616731567487636313885267557629643195746158716389759339946544653885239523846722812381689171674464197985874239896957616585536573426839946161124922112549111123125595262362735143145677227574793332239191713461215124525684419928638592799836229572353595565936526854718734641731418833117386799324245692341814839275788923715217444554697175491187849512961336263231271689196938156725254497145718216825324815862367625774191141266833467115459479484492813141138852967624232426283478934561248517914169976367423324465389924519416885488128547452648873791933657148885178857674195875822735863953313143338545353253375641693214214362828843372427762574292842621164991468288332176941912626796781219761433281513822734522796738476581219827442233293214866498977158821376768878115815771369142337865755154258673133962358834857336144169392135318246972451133212486418612287734259217536385342993791449589382285515874274583337749699965581599763183995113414283665368173736123264171413817927429731426338481278174652585992758124875394584264372741125515717782458593973379938653124623365745225445566525267738578953537265631554926864578246164821636589125827461722745468954381459694612993143227513699631678979152214968721114582744667779963639156423265618972511527667938912569551339936939548992477328793584826699538839395621436553821691794441169521516567465441252141587282735699453314514973251733981445764832975716141165843426517783742548238227181459137444242184563558215118524216716514389331721719793661778744241863842823665288772146621718236792868595836583226468954977836779234447847271858179466478695657516816942644867435395398244336631483433886911874423376721782477932313237732463257286616387544222746325246273745961854541924479771273535185311439575739232922298339274456299552932716741647518218429923525887454894197643433171483671763653839757898762914761439693487144897582663891514568391744891397444867624159611882238894738254986721246961333228548353426356563917715644255216179355882357321431226837338624138194157383912631585277976995182357964915857886898223332538714776694859252533765463783714483537283423618174663253466164282248268448213656159658264757782758325311963491282659738793536969751812943188716759726367455673117243332717424769351875424667431222478492262666297236774467581299268452834374747284531454398555849422671983366417528441221465219178566446471321488263118575846425968836458242338676398368225871866467751331617795368947977792658221113417311423778319134516151457429126654687563348999258679645674529463985772233367378842257924926258311451987264566415139571492581777338526276716876268931352584451831667221141357875777239157313887272338646347758533941744913996622823221216581499236818774211125957941161615189581747762135269742716469764314918148756947871765725792814318979752189117792777476486196423919163114881351377572791251619138148267299863811356931647626288244458646526698948962555354413165691162224134224871945372523676729998724467195265367512562335991221139322946114761342475932156231274672967693793433224282928693585138423587186322312771495454266276911359896165819796923564222193943966293672857232283678429283445347714751128359747951431657766579161189648837326511237561655125879572453368989855379293562431929932781335581336176397747857286737482395639872285795351676177618231178287866376135573174176612341116891781194287286474564668536812772283469828722595833857997169966831779377483168253685632443343469428185462529648156185225736854697965224643863149411613121216964182772343977846915232153648794598154364914796348194144111278213269943748375398328443213475552644217551651873887289549844113647523915653952251463544893296397452712671422548954488216339132841344252527337279323395275984152695622881631551133647272958137716669517922489582792889413285595652599357767429251951836842348638228492933828729599379645968678188114818124276233255972514653389244661116566662335948973838543738858144412177412663484482269271176788496948341712231745932316474581838743398536868282844169667896464944872852645925783193777692288718699576999657758744625336449478127296152194226963383753188797659451837236941878311274454534114711795545647822142235276836313333124278695338653222186486317614917586462137594476259132221527616575919338656423632646671553189828365873449468367491376687369681561245886444697637716236782335633136349355719264419653524363861269882178379865595997793652732719752982816352714396212218279188314754414286791181342346215638645216245212899331938742418474671688126389313922769839423989572448378714432892114899654275466723491527534939332387227383383846937818516196643364637288498866658536674975617953236644373168833154152537812297219513196112991276185334892413972118958295696496284389866154653583618421216693395177219987221439728985852235563619715199329812818817122846157953659841113417222545167773864256952865934414335133256513851556239436123132327627811149648839919575376836923584187353313749112127944263375285758519247665792954418692281533369487191645674433782381594949572217294258312834126257659945596755433131312429181441622556684666458375646248227771137987368917579237686757295174733139292245186748779996857431575854691894278827253625855687673825724532987392138912819989496894582233988137946337713464988925232879342185564672588638943893949821623517958788465796756198687225662761633388657197531862576619521595687897959299922965215323454636958513848469194693858881214178345664892684116162471383221278991687554565559291365589911818165114252681476249517835597372111128531986936473547913692634613125189771572591745942469192816261744927242898134729987895843712472289212342638947432979726727311715689677628478832112691424184456368962278118568359497853132568556343696371648732677434527137943795344557326259262471812215817337817792936588139147569749145754297543177114898574921566952584946533174335531656856237666989282421739351447227723745513529971884147321871184843538968966473143493962863238118218799555331616666985971431742893596258655178927883742661714636578791465563976426285351118782252284713426411621617213883817511729451745615779947956959797574272955775469733513939582631248678111551812735964332954151822687829459675667463236279434294293123141666199166918811962465911529348443298551648914667337653599986947214384777159417979333959454511461384345572229662161972363461839941377752214487748239722617794975871244411979125228814727813491974962645762147365266446971766921331621337912238146756832762834547617322664471233265964751461527289831696315925522438899333741247169556286815269599379739754334184252538797866413597936234143832333424213758118568634113144793391852247387873139869762214447667646346792455845842491155548737745444498516461494311135859147273658571392635957837446422624157329248563225377339932695737743853994547845282448468341211791774918842225197176618362214327562473442283267343475566847691724184624555275533954171712945942466948399817753872922797319514775622512635618312929831539731787971551268269159958381258661655188377554384692631443665576649596534327274294257522542439712593667472244388419192257278695664199998671357148294847522948572337288591517589546286723819674922558162381242222296896365555893873816135424386253573932438836448423994564243562161415533629973827377178638468113656653155846119184984225587854367117838178452659311831749389258168551217511463635252272446325621276381695967193344151834343569882288488526193927862167239358143741711129286635666326461563917778649643826143347166246719716173432538345724618716395434476839587411265424967496521392231352971439119764561318582944817286516238636925966743915233242125446171154781616265622273377527911792411438377219533714264652418146882612972976977413517289738825578897528292254128686423919347898875394332482726895115924288331213642361994284832492683239178547458331479435146823391133577165549454769439197571866382797682657951934227379554569994382926478657154426139665849692369683369844741274227317589943234921456768619624527514299291149463474537676541249932137872591244379821392336537721969614793386113797455476193511461935735492538565641371732142889986251232319312466415678383918866238752466928655518446787459139592485529294275491662441266385415114644737377722745497228695978445194695265835278127615437961116851341562887163556722275932673133981681466245951564129536978515532755173582113146964959747913663433814817189212943566698864937495415744915273449475876171485996282423655181388514551488547691331213811786173517517143267742965311628697841149165935248639614512217915783656757156911518644165921131357983665529598186997713765967518615492416744514639869256523832889275753422241425757252137165118684223969892361754324949611658155712495385128216816345133933344756828375824447441797161863224159212632517775572739732494791114293821229651539547676139159356446171365322838265566519765256158263848854411424964555721554853813545892777884862287854745945819873672249761255879224947161956972139289669318585592483918174625156667975791194185568835712445528798562978924996957251155796688462957123686377435295387463173539194573858154873145278793244261517357535311989949213157916563834883393129472598678737235912325687526555789587552212323726365586637872215876639521347619217468853963465827763283354845555576235219672732558597312965545234949941458462142419398992173571155965483158294681755352181454624119652383445669535982448122452162434694469179947112536226981296839662194328123658362385691375424529154665422519691463531398257892873264538416216622358622943868662349751838274243159596847936837371413775337917731931556873834244999342322281635457484421123583127841739149361735725332784314199776259266811645683365744466962942747356638239969667257644172743467155494223694954167267888491165867532411599817618663871856261559262365426339157793912973122917322521113578113837737549354618797549937398447846923851222337274683771852533634516693544543442672229539221193795531261187462641941532164676134549146595663483326789243824558194374587487366814673223672893595324391374244773186833666217359113756661521249716951548397156416983454256177662695451323315925247972812293577735558777471953717271739686368761798287987531174853634271327213877111455186251543192648394427855367271191917648512513889219832816444419685692934458168183175391143968318181789874688989637585241193754148337583485913983789629452656138958343554111878161979569933121372455934989773787882521715961181652737421474473282824428653888451894879642278742673666252464767793324298872382129171652359884619332649383544333398611729728569421163929976565822196373878138221833856376251499684563942412697515117315322463565685149126453562345291638224693726286161258289616778291876852138179129811156472944688692571551346517592295656977929751336925337726776648766397421551222684226642789133922277744639249496413782263642667327375147517833452153722687615581796154241616233753995361742678157624196792523622752259841271318754624482991585996936416587113181915526276968431449253117435277376273374753292178988822913629474955677727739951816446473647531486529263346376444392256596576658858263456933149365199211559338214544476475942168775856918523559294971612444942619796256641123414956459186648681536962246334357755721142814939944463577272433239496542581354317115995229126451526111835739212999756113255866554229428358413732228745121252326761434974649976912163872345632355213152527283237373381919841923561113669971641783966274438548961617521973637358263561635487842756143727816232155115616394225612992462451867449476799273925485497276142361239582164416327881379595759674365896159444172939971716991515496971564649393496555744291242167887497239122499616421324498413753236825331948734519964858361613381192621653327643879137839366234676464928862593492437839948148312429551418241674736437873719997485561777924821652711894392196714527622467565391948143347681976626583671448776191436584158314751614244193739232227544771797655543619715575873869928784424376548729443541136228399946657333282993374612781668425961664465567368155663419297413947392326663812273817446614226257582996134744353612174836543434488227128156565348386525783893738341932472617148662726463233968415886213795881891146481751171731855754432712375724411945126334413394279717395637652435338332553962129647519216143535474173573761511412561675544222949957196132457235963921141486374353418431178843586897761678995445398177233714227356248225151875434484921267848168183612841324937566789252641573638281481514431466572396761458232844645832864818153237138622227598577342332826372475119562532925514339231594736735145589431719596754325339162298439878746658441561661377629149641822186918713915394844993528292529374995848651511241632532924271977762532331113288715268786184769325725873618464322347772139317878716125613119296675948411491597154486478413168957746535118313362774921611334232355746643864963413958979521429688156236768277797158214753998652694518344999967231322751717976362566638672347526268137147989694376847918691184693824599383985831336873766548866789617613724264866763366925837883671539135776632294381383195122835845241661651815768352561367165295367411837625578724524721983821532842971273683224462486635714168849358587672843333861961623529378799861236439722926669895264789719851715942145436256426899397848478647745389589865292113244179363865644248657752516247579192683169196987365383868429937484578142796574668737191262148462882738644984911792311873345418644834374453857168345158581121151611737793395255631525866351322279436949433246231911155424511422294439233974385629878749764962578893725333553214221689213571351932418568482582288775228758498393815976211175447927266889932683195761515559522926128692818699881385852454314675816924526811454671597645724966437951593492419333793161414794539341112231788579885853418312595719174218165486293747738173557912768356681184243873117651663842627513114491477169964227664112419243642169244635248132775499755799519791592165412388793765926519472113828546884698542646747349647542394581869862932451485242189481759196661851767521848496316867215139583672584395752837581962972356184988671725115996449752859668834417532147371739934523277366872957959368165783368375784168788892154584675127568336543867961224733867346756158246414391412821565349416156584642729826164261492884734457181897117737355786535482676135894615787217744811577539168426657215278482227429123824628955442182431149215326979545834127721758868271833487138272676176486473432816847639852545881957694954744862511191529721932765435735629549475237581174917426971446441763676422161263447338677319417989555267614562712773396765124214612478545265592686496279336534177665965275146247614444672541522167964712462671649696352537786836963948397122241296929464229237431742394241622477784232785321624111458331131336781516158397411545377762359554869156395379179546388453751651455256273821771452562896274764551183844231238767595421292317662311757338516528692967282258864281536156343364266478796348485293715572841916415353291943365178491674585248835947624742376244119913751141428244457625985422218241228594716812754676378777825841811262865566768246258379788172333597257461413622723428273882217145996241935553622845371245753553637929891337793221643885165416141147633781361794477252127256485536216261318211543983637482465288722199652341523273173982227527511243823318224744113263718118275295771696392624744282812742541934876872537449267785344451827341674512377764269991833752927537944143222248284945349614193642744318229428335571924666312126358328982167755118616971879667738149754143761717339755228917433175443259776521739563776692733855342533396436873465325251585556398149648267845885118129991274545831286238835123516726749516941634819964416842876844977273893537468382733866229819785342397562951177222744927954224237111311157546126446849659555436319458713628625287415198245724717848955738866332662923478946476739383928591877481486718647612958529121289154781522316689561284275254511827378448145411657154612568936115135788663263422852266791828659981666374733523291929312815722657622572764313821683147863954277584455472517123135147637457171192984336727728446346674455168176278447155287873821276524176113674692187248821314129364323928175572127314359493827171152158971477918483387722275343428859931145244565666943465467556175617933132726928491629911457691559175256446334862166869163899467322268348363746942483911867284889421764685469725482755478232212799535419525549457277271293887254483438811642569478548575136415793616466484454225427819463484714191379571561562535913441144367133712245129395135824247715843533672555238552468688533211731642538422251418646138212323993288314636463435324979891173166961432965728749826514229353561451599722298762146143299952484784997938543632728992312696568834827481439935621577923254294626124267392522852368862143839159364667148577626622598523672366885168226153399723121587349226467365526791943186975367836433455438219424268896431364158373531442117311457589317817644887135798525885142244839715361565833866764457836612946196643739874159431967743149288347499546883293982838183482497691822969875591174286175628996399643264846896791364343834113523287771174814562452685161481281378726577455789191881492549585591934784598322249498565438741488646518759129144314335847273331947968977214538282542917152747166275389922633266743689224121158219563321877382772954188753378811547983554581725134611223622478477244569565778342938639173951183321152139646311797662554176633255246614713412474381571888858224679126226547769646966186635329435256494998125361282293731636649277544936621523538417113245365439643534153482339354422557488921921847583245935889165954383353653347347834218643714978945344683669853113483984958826914653384663951427529267919694262877387671188713277625441868512468872642551423435612633675521121512487811869219656425628112333623926473853866612963649544565494731933634359187384229995859321319445949243838513913267284872561817332258624755799371183772365834763532128744819432225774971499173761238416355262832477959658362996382577287174176437799876738543884421651335936459458951219138711642877952546632339919527676879128134665422865865123246937861347234861565695357559899868114957353472425444317699274522853447869925589835819922415547243331623522121989812232752621414346357822214243869615198756592682844736257624134966798779519453126935672218398883135446387519983612988328592862376924996341763298878523151214792171212137596526787443962633611992111639182924549729281322334691225275362188526782113841842866225547935314456429165778718866336153293747396414573169399111665626747741135978657389537766969995777825276748214454631423643275993538678823113293245641461737565119834155663549581551626471967129798857812983976433926514818145566332334488625981926355524851921446981962589615254515973758994493163311357261746155779518294436938566431413625893542764775859863727164347814772897728646228978235749712652999831683174227919812361193252959154632612617492647794293986343539572767332929883145773634454566664973276492155212448859477176453785762384985332249275377835113569169825926839395472814318532286879376651721888189315992257115685882422892759423233239118479241794213923975214174196651285769637275998918831149387814696123542976784863458549715763461359413769997119695663611811224394924228162462911213829292937395363821634872424728586572219413811439645761731136973772656991742977387177172632393933379491479922453699391245254631713798186646895138285464987142926925719355822181352734819232453159161175325211935246512915833963816377656863863732357394148888467312228719143174145133365375172824974128878792539154368251299853838625238314755445331114355212523958218826215172514949679266512132776429536122988732664177933437874267716823197219477324182737127546441385256423395291344631649428125345949155576485562673249299436147228711996543847572292786795973282748661337212321853398743451926912674652265317287485243983524389259653376798132472636398112338127189922277761361554999375364483512154738636114133472666797329763368289445664736674181259692658592249838226833497421654641249814222622679662169797165294363615946552715316654454574277148688457889264858928558997379634621627285862286269462757582243466862815931658265911222164761414452422233856695736151913993537421463615755347582686556361793442717371356417838526993365593946991462238537935598324644276627613263764355622588984517543275722588692754259224762324187452632911492471181774163895856463848643345489773212962835719242427859111921111423689728317635738352764486221677883345585759999432356716843897933642523423851584237784275546748746642667641997791886851723954546481721643536693769712975198578389282286348419273279734533532122533124126167778914169941782964657419584126572266762961859547849576118123523821169127662258269324791339714644153771785998644767718834841426944358135372362449554968733159721584527211131752539486899329525217435943427444789176154911172267146668954521983354585924666113931587121968227888865813759798237847613541638582674941752472266486814176856951618557955841159923533422427142646362645336958163588823942535924525932518841478547542965766623232177628223771161829231116195421343295766484912451661282384128389124765592844168585192374825665798538652878598517268943349777768167835483411645263323365385919679168332993766891384271965334757833212255349148613418832632447652196383276464887841281241533147715917236231195693119161119377695672741262863433275318335846246414711174794811615641848266328177755131446556349742878691761476174174151216816893876339417113327536856754283933358988639583518342936864519511586459381145911834162382321613325777849122693582471745685825236269689552773482973981493614955834356713796399541571256789194462286887874891857449997263194752325126129452182413729659349722631561499873784282514821457676823993844946933216629812637565153443598866264754995631352864552679591169441461912347539777913377876835246138364262363444914852183392172336331288148738947599244733553299395951352494837711787537811924131431651322282111819768699936866872438549713916333282575866932379416827743423654363868571918965252337477479985155274631927633283568836352478391617343525269628818836689186663781964329278139244374751924471496734516148321874582343391943251825141496238268129675229443182436677532488679428941949119489478158835542429314789692498711226772434848364715784667381613533972143732335275758159968657381171554931252622884869234378785948387753295686726927287665561345114728941786446454378229181773646243852837595965755331594376141829398785322519151588888735371427338354358969457562366768122552432663634634997724244296348438543554321571728165669595827784721168642364213358677768261795385953475347913371591841351782942817578164638495658252353641966667339975937325955931366248664885346567461573575829817359154796624477286795773151292772944482223752265513876271497775686344182254468613812453281396897413416222915648665142911932614113126393358759415649654615357624824472747718354658529746384264784782446543888964765153281877415969252359465937358145227388356419254591995693626638137744217671349413254831842344991827552528273773662912916837264685812549591797497837931967366223575164472632646693951852563935111275541811649478959527292412914426428761237328669159585472382736542382312884426229742536255383232484554482828398648169125829919619625625937342336712118174792862229646162485741455434345865796514776725829747141746635173112243648222915525645787858145927592852487923527539332224261733313761163821419278337345144695299545698257992762287731939618115733142326473271976296589576136834595928731939679479916988832532273816272385124359226279837794436914768642517996559735845523895486136964358535453153124884941544793453726748766114643463328517281751975439899483387331612948825264172364331755486146574424954315281642477962551445928159737423645933914342289231155666932553262885494374463962745681284541722259394537146539536711479961337537368889963363293181117626267775423248844722449542266598771876416785964751778133519933984823999483838488433142525183546331231433814549499241444295343737132174434581796587562852646335843213825393165464394841469251535265143738333971433613126874359984363439335767996597112882426495357429811256989159258664634833164388711939282585497878118895466193183999948469423361433333421141555947947735948584811789515675554711817669795552135732721273985485565262619819821444652269412391423718435384229243556334182744474165795465334881577141571248912672165787463817672731447328712898142561866495734274375959578537744122177729498886976778384411818318564177386545679798274813612563383919916774399359922131564188328569953451114912927357159761844769261353932985117242246646336893632371835458915732243728274583225479443112657875696573614839393389663233898464448854428331391465863834364539551434172659921984515253192115319142245215137438796345339476441281156724354739213915376416423585378423628754327416931319237925311291719312422737652871324528592113521791369646288969656574894299648953195792618651573467753357926329363746341828451111799796854326177923257174348954763645345448827156868474813698996317271485745473718192744873748696114264727476171495397122286932712872524885941144254827623763929727525856723754224217713546176431941428216783537144325416134412349389329916951227833244564167375923723129273694167622195685725417346871462716914355238148627665851214579597294675216685916434634322247187945454756892349356987989651629214341425526734649721923814879316822815958329986538421661731543789676569564358831823587128551251879263168471154333223971578471142635237525854149482179732878619935282143265862833556214575441956323538314492965269492672397696746483936359526882288718246214811713995968325632683875453146687711427925925422286288556697994578842332126222561673146141493885295467234757387687183952737145479657177517295834344994385618954676237192654332531925248245912149261575463796447357322941489526649416943139974442315465187323854373795441341389274297276721846527443539761286729351259782183646269749539186155895939693314449773216512675882294465217358495354915516698416145365427536197338842237141853897753374556293335273937123816747852482115186126862579278376652726856588758713429182621738996216672549312391348238177136433549255799478289222918767232835531637992249185245611146598953164272818842311556356121913726437744776782246385119155637491995182882395255438831769377896234747185651298246351526673538526687679556782817612984173923742672755942115154977882381127661895857193528281128612124821494688515127777694246155361383537317657524371665815691888854218138594227686399314356792925113292456136279417758538318811451919532341482619726682721621539727271316122817474757232355925326638139354858772626449561637934585855582714394343125153413522766945495881572224971137371441561211119956282898146165189912196921747971479187442453875599569259898772335259757792395356891435867912376555149662545642662526274229381465651582577639326258241221483161625566822248899688679964615224762712674855167325513399985626961364566813978581353442688587581337157745885647488476669799533943272744486256661423538969712391446333388589642221229621121792861461931861754284758981889557982118455998533486124725825629232759253891393876136553862952163973855818412331227426515448456912126469884158881453177451162877533329232955541537646159132425113763736421641827369768832995411639939779922753761193712417227629136819792376478933734388463187129823227362555713232129313665391813624257457518253667162874529365797134273934959712447424831711763415362346893491946962315115535382136211252351176515235363171978262152843686686164851541226122121651596566418723738634859862497498526874781825525836448738239319762833116596398269133356741599278793273438377864772494461416692589161872285668163312159811553434764137127856741414591169477599745132375821521229954459175389142244342981211889627782317998769858679244519214355552512679833237595292664933667525217234289399448467279985656218551264372518865746254533683375745385448256168563571556148487985995225967856487798531815881535722553379966362654881639336558355479667752362535321748588264361913457545458364854381321326778881434828162136766785211367957274512691366745574112393594539254872833351487995523548641552799565145843827595694458171521541864515317858121399346667554168941716646851656765163769275337181527643279931348679757214682538437781272646934183326195821234864688441344679234236256477657314355571343729544478594154573757323356938132388345774359718973162651582268212254533212259133476745388924386226832711868248215881114334921761723676727642422852313794952113493733362881731691899774823337923616584636836925212281933378145915878294216379295451663132737258269362577898134185849817193632265785334173538615514213391454583583345729323686734428814687112673256786146963459758521115931995114733982731512965294934744691129295466478399333876476865339273336261429861431788465862718165475351875293573678278692866271651325691962977553711642431371788361519523717189132447489442737692712776387338863198323288219693267341297148628589589872762182953247719286213473273658591821931497132334818878399493426847592431323196687984392794478616341869924239561966581876594877849259428547866338883567836851516747413838532515676833717853139445391283634861568278779286569441351643571638717966121631452715988629522963773882532852781288533554479555381412468732161863576337313413239366146567533327854884411866874278641549647862716442473384484645259541642198871566386525439888759895931352968224152959929848118627752352616977333828331477888199739635835335574791825395799476714143523188482865767625473562871217184342459879638319653932771882173965174184316951981759289123627619741772925138431648635193687585222715711719573262669395229286224448196592512149533848678559789387854598534682227376791498375845244656714188166691152294697381416684286991649447897431128461952755344348245497947353221554181487138534811219357572532861368543397232797764881945454399877377661241159618423166976668215941497114523451289657934129786944447831274487255649991413887398862486456889274195688325153488785519123714667483468773313631597811963573211564522853398327279559461586917597156775562733914163473449468314552226137763778152325651472642589462817376763841368949529223292322656198955323662484727321294488896854772912365113273336134883975718241743936937916184481826398335638833972271466693422328115188848438915227556176318731653495855928925992316269428387516889887532929458225657212261886172856169339162924533578559322637913216268265195133228858714141523949616363511837194553227238322491517494739715677522384296944685666413734747838147215152822121997488449174645292623412456888139872554287667428448448248344481452235863585281555353964581225233954182328549513351171569976481225151841818517639235133397493324193725177985361878896633166584723453782576265533439783128884335537685335971554632777389177714851389729331468327791148426638585555357129449322396894522852691465264444512536645942957368341485417651638113739147259525136674282891174736713793569351666351241195716133145642357982512267494624983483557455558258911448118541648849934267514632522935452331621196531771629811129295139717837971766233551145988466293587136487228326283837342693588563176247435936526363267692812266951121593342568674714737419448169786334841187862441823432376149695937546298854168679789578278889124261929891156735991138759211148747979251388958224951618114317493622451131428561127384287233878447245958414444359713819222566165861998385791647197252726519511338185613217964685845166337973173781312514581497959975792654671158511563974687656949879396883561139585952254952514991671214631774317969731769311538127354726824895372335511615237828676415243411432165744469431538435449492291586711819391937634541697455979898674794243799119168947394961582331814751294134221149961543826844237869972883461435868587267413174273694993373865478233872762216831962464637935147866761245191572642985719247458884248977665911531947728273256673113858236718197531267651994352525841223199165978943747365391526567226833699556368139433731849362375778575152179954116327858659263233927421635136313627731312719957517421535419536276288572425859222328337194264175973271189569312212564686122941422327459829695855883413422322551425222339987616126432422449341977492531727391558422266191576169149544271462728323258311688877441177859332721762555569665712632833516723177171833386315241632382456351345581364744519291932624386751239435537422836878189527745275388638134297132593683779991588644224625179317488243228659644221415967863164627576498252645385286433154788582844961481646477397139663234191169996721314168639867766917452872982626523359513126981196464135189669993446587565543372136546637144613744298682643826269567575168294218126793453271635975121526153235997559956695186257581751475275618727185595512521341963529427556681129612162146897943589224748844845891761213449365282236165621523578411897255726557429216386345853257146189996835181643217355247289371721811449555541537925662196363126152149218373691497575312324951454346616593348271571173596877396826922216746839836648216473147643215139675964314674555671266782781644566512882441456558198612187724128257223565717211153299795422675528887736129792949387577345271491876589149758752863913781239397419866162814214331129152398928428335386477886456412295593651772426981812174745967951246832299247331266775552266163886192713354561999126922929721737343441154597883861863998128619889935349558464449233111435871473323384441213286184291212493572338443746616931449483437336463939123814118694383956238249229663437618916822469882151188966578219521271948683582732954755188844556676972242642199936198271914456174591826438866816362458474137356681224755478272535526874464221925631136984449623756559746226211517541454659298824259551228713193643555745363328173463338669849865927751312168622216571628638266551868963887855991181371326133615996427116585624488561626673232817132915664398719475454284374625526771326269433375583678488231279244895352813823563146556329746584263379539625922565813239152136553311274971521356781311235935893162292598663466382292438215873958742229491863713919797547739354542849766652821125421458149886431946999822883838784826112388524657124348611883846658472542321157461492651543374353393511157224999576856955481332239661251284962158324877435875979581992547987116231677481369525635624291219739181155975114442834213182491529365473474717173216796699855446557117678312543614727163492825965874234328575591631647121867411552132153739854696357795611468248632854851139418399553185353617333842393813991388675723654689812631653847977123192117548846148137331232444734364841821671285261123374546381136346568924666414471926136916996471382386932854341132981324345975311697218662754238158783143855227479297476771873563136937173986441453992774787795654665434748793719147778914842252955844559759367318974857555647424982117932254428589985253865967222566536551642142244575774462694296625865551234817475435816591731148441767661448214218134692515198379916381331281738822165414591445828731661116148377373968417184695859482248691283686789241535214234873768693536869374313577393451266396226463479826126372221592775374871845259166312439735732293672713798165979114331578733252831184542795969617224328655661317472795957472386241327365952156881953955594886313445177134232174912281849213956416671253653748512391993229172121215273153547745545247548963132977565927659972287867895121299541124715951444351566124185974182298444587748275217151119819692782954287454245381431537433581875482679812241114113367798135662924381746358376625545181638452756273732164676863484137534941233115586621196214638285721131353291375982317191679747141834852812715513757554274337425174168992533398331957951178913632829635125566475583643472819418176576321588243948243567553582662134591172115396658499483544954655915335912136758514888435129662966526612377929994283643233551394687153594825865273841125228572785662523199836125752146755924752323139751512286825114535424499913493225357758443113267381691113747383286139816382774915632752946611278712473631444448922662852954618529583441221433589638117114462585127553361372237347611351379327961641813663589554384379214461157837625633712985765294291384789541487197161618994969385241583636142927962543536932785338879591952699239686864163483813178627138642356216323331374973387475727222195554277616667231626289722219883642125429664765823395692484827611755848555995374883949284272684242215371312353419164362422697168318937399566761626449847876974882866251754572389557967326792134912168347274654364689816313926355866258633538592152337423853566262914359496574219449798515832411798734623642715674378736931923296867932423832142185783144652179839326315258987478117644757968397231376934293615847811183412157147373363748419539456353464149391127786883347984612817432685832591772319515179129129662661371929421938491899462181688764692871185861744633537935334893773564918974939583818723381834113327663632913341419842645251526771536133238561137934592247359499652981866834398177818491563778319716795235749132967897759552225227561779211858619413599448378487481276412334742855389166976332371669185215151942654639151471832633656189485592499283294427273982397422758118471428256988855889951152616278412721997987489281162334144671558218936596479375152655821544754845811449934944515791288634569292657258447774561714211172983272732367156554376137465376421854269125937437482376425426687257789226321668149378328318684183469954952726368223514825369361865323215995297343729683134593582215932111683177325732283519348312224151754349974279592221687531926921477212821448681988534524517352659173626535726214877593739571825487116252299714986925332316147779343287526419119287416958597515967836141236817151412476681399265647792342262758542219583993312693599392647874169664481725113256211887224618537566176271776722679631117674576198268144554134559418423319883317649364872874177877615585548472389393429249119567977552932974994429761415741986415532287582128689473889343153539934473619111946212191742945663196776819333531625583172233633194249231117465454863864734659948564314843521191933912466473963195562335613828841198161115332289338177322443215636995444123585598115726351898352525255761659136431621342743264217239411371291366627254614967121593514418472243415441615373119497935543934313275397751441454339956586455936773598474286134387199545537584121132996988937139199924532881582262776312932667459195141383335328712213112343561529246259656846821959181115355361287877998154625338396377692772582985688323231756857192242535571564531552957571518963145895368652474751673679566226314896167476314751674685761497177819287282943715149744143218748838859216275851294146115722653762325411591827935771756199629269197413922389757765491728428493741566594124212568161138881438771414613312918897725741831834384356357537853229445776245324183774289293695451447647556124492351651362379578559851116861972398527893553539392456421937768258894376816144973682173596241433524875192973536433598298338468324845245396234617568727918396471513725311732141619973834617961678495347435816837539949987135462939681362991112368344461252424321245976265384534761113242242265584313862129329886694374794366266894737114572246283965233367855393891645449593436328914237248831966932914287453354844677461193451954349292789244913566139643646814416566786414777375215848339986371134826169136551142342722688161842831554486299753618371294113229963211679877451865551428923422612472939359676125967547252916828354497742272673123911449156539547327992588113387482278948282435866396331563859637924854294154787593187884927132971218159219943227868918996713519824282875363649128541154845385323831152322993493656263133938858511441113495741743971471312227482682788299383844967178324557259738738229378992952545138734256869648584934454293843228172796686645465355553121821717658835432253342757232364113994988173461117271173769896937339318665346327654651226134527721263373267893736417331912529921686183642452672774613514664472312278599482818444358192178335514245299638621228153471814562798175988729291683814832877758569321884283339131972437926563658271172848342934332594579881136415754884529328684694571645187711473723876771915183874789147113516227594127457581274682794575963333172182729959763397768832892369236419887656422477787187398685476896286936611443872569512221328334416232163584617569454231638694271435688882466617546361164456544918922866252281544334543935558685288692215195861498638854618777584826234162974275181487619919734535923442135412554914123162349764661483424283251972261219475542419193459429447312785139233142362164621646226726619362613482564521863463273451161891658213374767735143745192437598364176478762779493416493289436375458547461727456784273622134957916761993456741451265744618232835221184126392897757354298797785278721471521544211191292138143434448412145147691417364841373942966459653481746818132465235162689665326974389478895818581612615771487923247627416932739253187738971116525443323459914772947917254923231184643142971935151489673524247167181417835262551149535798337547314714568288781629316299312551663114382962656913487574662823886358639898228827821316439872933466262212182577285521464143255373222474522515866825156727642733821246568313362294417121832695181728642273775573735671939118988134635934589113914912282961318372971935223152338469411827635811462432712594668342947448921732258696352432457131855332271938456171415642242197382763369123715672611426774365974431678516478561785895484983885395885527494699528185527554111741975321411836772464616213228428177631591128656175919939982674367494482754242242327668187959144747763254624626656897365765939251326534997389281689894297433288569318634227367269699312844424774914889551322681976199136694865173978135639419932645633411342199163559393542523422682377194788769137365373387825618212872868234778844356165118769388257569163334925726794514748686834266863795251423335223434733721585272189751123999245686723637325927617245373841171832859348781115418996661558469844263842256427328793415211991733136783519676621359454652781918339513916968388443545259633624717189577512862644171883649567119618118376214881565716884648565687469624447132221553252223914316163237226128285298711373492135882362179177826498623956312592261323553691545563338559684364213395216187673554541264773667128936597319442178848247164343454793168746567477816566556372283272311843333512455674322727524562941169741987898184184195812679528545753876489226878655177336313679968952642688952374444985194135143134452651277893274952788666537486769298287149282374842922537539383724725361624325237972758656131387172187688459293998245368789665476399264624698915834415785433681759371396363535251158994654145159327642226716924974242194186682134255826533577687591569312335828273632691679632589933922724981294565913196484174324422558234559931818698355239915533246893928263495987599193411693555572855365228164192588362368433781222749255529922456255675797229877117989547565551934542757525812981415111686255653731748517655285128891342483211849331963526377811379648845133588873124132383156226836269679454622541959784775814968498498477754384457398337345557312884923927165138642149195978216667383927283778545941645877441467548914672243786415522522316878192798757428529273377176158367349423355335151172153155794364686356582753674152397541722729814916928634487983868596482181358748131214895617423276364919917128546163128538578132511956485344413639823517961846546839642976524479722265164295541326418666452119888492749458562159981526461653824457636186155958569993172686533285469585171174874486234699512881933992524187414533638487834387289165679233546438975219124183184419348283256891879774383948382449117324444824873688465578633217936975441386968491571562367391371941617151358285694818231813371349858956122624385497614747627618941731566696983595245339243454323781124626465573446946614478379284932185794136833748498133274351415717556185527438637313854138692745255913655114524184251968576697825411587772999633795968948134736697718499713823954189485482153525483545398223882831757551378349342574471838786793921477969949641159664953774266926611334637968776259429926666596524256429415714233993725471311528295484293989918582452837219967665628411811945632829626433139427169873398733669751186863452345152584324723136453134886582483465679893981338873193655954797442714327125132567792258568374791914116244873523136518216392577964751385328572524273118457735796847626951376565962826598736421191411581741143718554216557638278312312119344236243212636818248121269981957848527473371861942255533311684891657634923593223371842234695143439724123339753589589119734197538497433923414134879433797915468851478312847831572951126586334484489493495463496811872557113282481812133487918876315717223227733417972629186424646916388515876826354243976811211236878225686873646739312313195435742593451438797544346763725226926386812385447461741381365643352953419581617461179988136953683343339336257422522267877925843255515176622767154219627549565314621718522539535482188441382774651235529214526544847334915488682257872828233316878824547419891718496191197114944939591694326262329876113834366251429318751448693986933123213724333247293543189315173177861178991661229541966244528226822867969241536378337554568944943148538152116593567514487829484575289523897481725577869699151447596973246721222553518748669712873226251215711523377367297292892371339245576327197928947211913789837789559499358853632778342711585763329745279283387833747631759324836877377755895219122324174138421324392259647282396115236899288359995645656475443692631827811753647232734819112118648669929745922971523489163627818315235535664133184599948667423953332378595767397433352673629756378651892671122852379257317831244785691525513991167763117271263983387982997182341983939851536472981324891889137782965154191283875966725823134927311181215484434599838211262497691442992813986442574339952256312859192621477492848619396565328159252118552468263135935412417747556872728713824542791712554458424579564552899475372761259247156546257451823131218684981968661888138615993439757717151589123119724751555928538114846149751742791633412262236593649563444633625737955664851453168288882369495479746644462457144515275426299586122428933631166462161661916661185689875962758121358776324574326447339674249852633969623633991339353371211281149517715785159923999138316813314616178352255651293326425345331425393251821662842292186198444567226468165555433791519595778699243865199131978932879951282157679184762638319196658171577926935549562419463691984376235322869629873518893437436572759528313139717573368481614547261341587129673826294373793738648155333318667836916218854614561342937459812627514932893698423888312618167469639774325546336972183168796767937298863161713453522229391186274479219745874561474564814292636272372523328662845136216126493337511884781918691478447523393962557725292964157168147429742836726991826885553395628617422162528521137746477296119473999585245225538522925148749929194276691167574221212182282317853162732619373148983117864573415842972743755997269599294487837314542267178775999791442783944278795456119235492553716516568781783872611719446422271243123462967351491149597364986856352613311658715115824152527625471642117445511625395327974935635625577528919867295498423256362894216171833719712961523672918324182843187843155618613616768495766269457525423333325237633377136611347847283945266133314935774348599678825768178157936333961892559189361291548672414493147577115653946917598752919919336422299471173863553284246484971184122995146518114233453483632751342358464175871687381822534423618345213358436736342273892343539512991457593375255717141628196527583222835971382856699547941357746732478616714939189141687591243765955567653244226623371737214114986622145259718791677542374887228119721437449115687343817317727112158871445356726244672215318546239462846981681911638373551495213514312242525933544369885468368666633354679884117937314475289475175935822292988714355125736315131895158559797463117282463729269549987834791523284674776521531447787742452633419992416623112274159527283367539364278931272116985976661316328444813972434633536359148728667673899196246899447112986724193651933388892365685395781194655417932878473152819934651698569498488498254781873874411993739741222742379285252898336148414653359472141236154227156677661314399975318267942348411736534258741953736853537514332941783867725491367287697624446785213821599675848199266437184289782986834528812642136524741788222711963693259582924551947793176675797882656235698164662444999183845786256867877213254282916299864978144557321744323613464137317212827742155623828128338994428626622359893387914514389266571444714383341542429777772198993974434263727281236164281712554473181974422295566147783434733779873862539259118257336629853336763491353351656164865481814473698663328348226668449984982493975845275437219136386432832137955424584619615215166787621522577698324812298782649727595287189481558219521221382859473643666449524331884819955742149924855431384791186158811843949871833948545435533559447895875267516134874969423217942591111495318927737618692561733999321433233281334888639667265628523436643913475825139859564817141128487321599815984119548289127511324387944869362817945235113966284342566538922351223291695545277996295861451124987585379348373414813925937471163714623626936457823431513548259974666243511964886526232367878778426111412349393323349488758949522148792874545737431345726741616592315657499213614237627266815981764841262698626348327516951851331633536872225962448674112435236587716566166958683867147317973839166264382616151593598345348492615469461487113542567485724371586821234185495576568136415119838646465764233754582973822674586657763919391353861152746859218158275499319699196131872267113666567457147933551537727557945512577689721381997567999254285327676236594316118928815862821221111295192535184247371757366279374422287121516689673425356711728184152155438961233395352993156725732897572918983441237124965189548142968913279815154998561142251188312821484932871556888512228639762916946174421421476529743853592236264499145322735172489233479591823437691361248692141887338421856423246133387351148324577315131518617252721223517877594442522344736564287473868284154689873649221614891879484194297426712488448112556383314116529696823894516669524619258346486619199695327647973795527745185751538452769889778453437981314678945952639719323538483184864443629221713938111863131115322485641219798832817261723433357326248589886819262558456537236118367868399767448956737843259199442765917551798849422479879959853144555892631162717453567744199421912641971945253386781539789631957449969715421913258111782483279151134737317365725149214164825659236651656836825212327731745693566283181683264326828825618332578971861612185217659755327625231939914476892756435981997731318615362358136818792615493212864916726711123345195447945925724772396575178222698735238313927335447185623525124638531574191664938443891617925812469187571874699737321237795568153957297815841984347818447412733792238726561289941221767823882186436393637395597147684533598366199763999613472351772486761411751349296151239524149672131127578429198647514154484793227471274421687998551863428677184349227959644582542286927915469372296211533791342466341511871388564541368513316388971898584972424114142999253394243295846516585423883255554547163713411182246274967125759164467637461497952762724841738925329723415941771164762224989779344775729411421299136467342818631174222774616651328129738272646135854387532318389422153333715758562865329394282354867757457152623585327571412254796464181439937992677863437416985617591948563235829943792953975737795956289452232362815595738149547958988547849442331962441334921394151628225438765497983381289534889245194615414287144637988186833919924354835223867289745145825333281997811959182667723979432856932859412216943289933163587632985763831772314514754748431848825457134334647113669237184319274458971174871494124754585425964728232865679935242559462942149246464662765421864162251322886248262153182573843118258694214823379797771932318954416936182234414649791668656334974496844416615327153567122221965817286119476623811243473985291238765173943497331131739756221411291638397583289455816729114315373551449879927291735237863378915994544631555479219365766814832372851593172219381269939481798911447975433793391391178614815717881768529815811889527646424238372374162781171212665447362242348817996995151436355181315311547629399453613473869664147771317264367385383832817831515219287695416345485587534498921413982154973531517675487368518661523312926331945274193568788751252543464862231178644889282263661262951634896135148168224626553191467149865177933435215226462538954774853478817827132158485432541882312381627183727776173363797255275273957446885887231987211124122492736189528467439612541991625745345533468833255982113163135582466757394662535874311855827626412412332814646336148335613392429242236959855385396415611981641866797479769242963817316425842472252412844485888541584169894254719262793897148864882152457341847732743378687643411659779455586591245694458435253397558728444196878281722874999487887645295433257179355474774113957742484522549113555855243856293894369176334328865552468369724331977953683298886152122571579576515954263766234988251354232523925337571441252398113991278679596383637453774986487312554813366777387958482387373654617452328834426722281286752242113574639328961487515188215323963856589937146183879778214838921467929441289447436948927197539258258512642631398199355119114987933172519931185351496697931336127874359113679165298865538231642418145946848672651484384561141187959383125429611221727829988626726761642771438554474777526353367958563717881736553725218478995419257537133419389953645162387654379651623913796935518643373124696979194361773621712269123117233384735152618598369146294599488729578436579291734219186826752482437426593446179412353625787113538472325864286221652847463324672225256645656937387655577485361118131341486122451546219546783541385678541674817195495447513446971267199416133193866784536976213461315157285581144457869173344935659929198856274733116168174221297314458418156534185177223367779158581192734746156528538513278975876837615162523835587568242889216124252326354213898325252252414379992998754422344862775889153544335667272437848876895489778414435145214242911385758187124356612266493355126793817773599354713796331313362947882668474117528228299257756213932146393863593436297571784846941216194123615125813766361799829232189271781883458643783436399276877768897316346578714245427445178661343964143221865953453912435194336257547429234462243331422358363869751667433279484746181748613315753631755979652914261422615941784436573562542337891117577458342345821233527524946956876769427724891669822269229498442877452285142671523673542318413358413887361981282147467978761869287994933633793875858331187776793665481894389162584553797839864232312974927235368476952712243484898657858963744577665591281172358597447283843538719889219126859644116226999314658148391789287243362182421853649121234278387259784599346826678573162153328481947225689598134941652277341513648982832461295938325394765885514718184491983777881862465213717595914385478851966454111598466144913152124198618755697689962763757321818681884399393938831264881259449181855724929424781366788511546822887638168172523987115977273534612749923418822798999414194522499583218444691965112387638876974776125941355469358938855825183961644969164949528879245669292731321543483163294417755855798571863645188976914281956782159428199812632181936512921764248463471856194416523327314165533625474413951738244551816941258743583988357123994439135596646656527127774398695893375933194182698193731641971529986263514692332776223315636443691646677299129685196691465863321886332799916181488633957262195252448524365298811682842682439166634238951291998182583965564212483833448552599878768717851789132172231641438892617544787195597664386178252872791183364797587336312482833965431811349912273892343522687963356939344364389643459111641382841364369985172671783983792469852751935618449985124234915464972628175352985415579735996894735748848632281744532917523417444652562779259669294338952731737355551341923156444549223227512518573842381392332737279839573668344849539975356231698698341387173563114252753898681898551674698781789319125315418293668462994782542592287916246741532389511689538326487268624322141846616528172292251996728841529387343125362594545626312586461572555656254944897626548851498884533475543553318135114669862915854152768794613536291529873348281941291698414526535834854714796338257455589815977695892436269985487236727258975832594483141636773476386146129341628211931175767428873761622466776437843559923427228947196938571233127111679986621866643958381516561643497859427764678149316671296987351685441619379811139342497725968184376313117349862524641757825277334536452589273149594591863875352634554212116284419333652864565845625556213242684849261298621236745648117715794812369225262146242131699444957422159853545626953891149567444162381998614625121723435354119856759871264986317379224447289918884145515388888185268594131456632188516145242311878299212764948642496157995178798559159136372797281647316441699418658813552633543746681843635872715871362414175446824557442493235317561952768885558234817469479241973184379516821875576263894987183958237943529771238436974958873221445118728637268711486152154573769883357762822351674267915327667841847184255485896566944235948867234625345891244675289529686863283453152291692961152548649111665511856149728166957423256458715289318331649314672237493545435998217229691197681862274191729936956924674338516436722198219372344787393341951552981563131578136665395421272763994237941137786338481788244436944515424584594721354451661663159362145411663138649421299663397882321665325594812336744798924221417339791432871111727353346727842327998738324311255735311491227567575167893167475262896736197726336584263557931918576688973986865647743487991815458347245383168382214323196484787193899338253575972626355218867348934521648118678941678476679474527361744432139832399488521843755177858393421961952364441578129498244219474279995328397395951859182126194843754119286851529578416945255643449752751571327211695162828966513977796368248735496781323266656397878123984527916462878775469724761157361139737673658769963695318295646663194666746559586887923974124428561952748555639643428485482867275571123693885435712187275298224435211236557192859828943199262395118574567283549135571934853562392842264365595912522584243291528764755315979524679761446535133722312269382719119553532122273661213883851182892927379119799377827362224252947641822581345385175881314577779212574242679225251478413117298339565385398373518716789694815976166254711149261425543359477751739179342522364879364298764313688154369113845694237484224577617789866512189282258644183941178521851612126183752785481531766837493125143528954312578384486334432271257126576293853417891616587213293351558446751746416144651497549459288589767558532439652413732145317739918239718113779643679173687426633114159763173436548338549579874115482666239133414228272115848914445436727322993519976957575691679456453429326161853243448426342237445825447934716457494151437168221191552316663754227542871666648948799195865852672192629833549763558136117841833851332126681793397658748372677133622913457857461146962813926826858435441451955542585655697887942227635259176831544417741616442321118586761938566729974381927438163365477523348949325355328984566245399636492896736694476614486711628142381637712134721128653398822937886258179236134266526591521567473377335129566522918933869167414728814334487589645355252916423582186798591253176364225246297284417658166817213981711752884385564968874742784357365461823742942567265212554518852791242278279614812276266435499761518213632637371144429531219614869532888285967492177863285564125214991454666674699718537452242851875415791723313911278182178966883235563884289481546587152624329681918767897776238734362478887483221144125421717665571496831229988332274511361911617698643182341377635451845599147485118542383236188578765249141373371851667926564682241772998419974817272871379273821446888817476871632185542544659984543393955584114368651265246192174475462192424796599144657666243454426725599356667263227528956161864282147994717975494726495667355291325876222666279854721387532938551861818224884514253376899244217761711481465322853781146538378429444963539993681262852174794821625198168519469829776123714943181716156559141256814534533993112353327192528899367876927446222975271123958693986263948481772321777429788842857762313897633781646482562863278689653511152168384787644332499731767784782383313111245652212666691733451911795228331218135341174387893263562312453476257334473961674281229334466426776529257928263865352576487498983355949117974124553423945953254698484588144898445364629211978458497152799295758971832247342121974235551134588712332678268162478248812576517544476513996764384385366665791786371259667548211613564174549836615683912658628954315486336111392958353534467118337862163773788862355241255752447611217543966811999826679875763333237835575711281522315537245784791141577398143713735911627481848712436652139682665444824122469281128335972287967322643733773834787274958191224639227532159639369819495184255669133776592944888121878461866118825759167799276923162115663153572855431653633543991841278153369113142154457141633955626693611699683727853362975787227789951195657776694523235442963743813265148185723361556642548913984256929882197488823674431716533945191838231514369928338534313513747627117691564185322452746381569253585281185252318684489741791735923781137782775235451951383338973191745696617344441779352715747444856342218363673163979293943495229629293263687385545596525812189694436426493872567275912891291837414965748976244158351861938564599814136427284164352964224722265641298312899355218193219374895553591474111995912744129199817837463199782168867429832282121545118431389317412927142744735112188418219815442652727719948761818212454655763853115163269413388295945961213814415992436618516122443432559368398561784339121955165469372269192639414856527729143731471487764652515577376869874149387226566187556881244286498396145194976163196832222195222798523665878577492739632248326839855496432853726145418161949331298955367327339913783697484192541735492516561729717293686929361275954616466445358829146378279193864184231261269334992115664162452593114292684698133117333811673192321817627618473398451651429137993338431718124462868478814797636597935812431316934431931229466361966216437316184674375383247386314291865285329697634449499923651874113172517365227787187471135392572595118977612513792833183985825224767988161568463423166579329672558193313382938242162747228491363635117449543954174791256333913421449851932176376797922529815885635644772737372431112929963139373926761552752774726861737754463167544954335298917263386887133519358493331369433234224537224679261341119897846125221285736981766385685826732353862433878263785813838794193952695821994166138746292166448463458892528261319325861484621271178126217431733645363269489189987888956268368645462785327178875852644798554918368626557941939544239444991684347939193221159444848444225651718861542345451776979353172426839211486444597577249117887891649869517396345877586641655168391936318231262773573186217183779548695427896245228913953373391217396345495198158579694442574335537745246557549217334342837638791267674798836149218263897579253927731578592333474477863893757913124154192934168573375156751596469982745253442763489891934245894283127931411113342755854885511246628273165153129763144286183781827529735113215595926138617462212256634683933961426186593475576294891465538595163376427441998641232777337351243746664592929137632329566144625852291456195753852573829598361288462918936596645413699842816739422885583771675254371757392692822525236441494254372658629181388513474824593247745779271776288426494488964177433558274289857733644517198187186922843537251113194148647311955357796751544792356484633111782229536629798477654894582496974921456943915443598153876184884627136771368466682998279498662377378255823926989343696659259212814427986891325532559869612895524845886365617138773485845387936376737631667643664878628726466573685693284727761624867169571653917936855382612495215396496347124891925336165293742811172951771431141568376472628339349623453964171499914132548234817129133218879536616933146332167266667224245978358889223752395853817448176196558924473443514448683383643269114572129169228317267695237182282726292985116625847313283681863849826224721588928311237286633412399569644432328592121147276346844516967723891266148656189355926999834285595568684785753762332542445794315749514641616569441692445668263872158929466128663783751482144367728958327926138781217759871943123516623269326166152434584472397649515398196475588822499867265113619778799638636161692512599378282117135584721751648822911263421246482268881932912339526247171853265496327268292784162652222688499457728489937278894334122192596982466726537775555681164892351616444818956521426927976922697616429765487968437138133995317188449187695439575991723493161539659954584498644974751571431796274619811252231695146564495498991191134773843759749878683734257984376689511269417696171919273365884321736627986195373658544128992271523219571777772166569825263947835978395365232318654179171328243128764384932524491293493363975472568112954282346727241818452816533765886245641474497862897252433795263931992395144758414136895429933231346181747241817834456216528643926183618836125723415661743146861473192227912773478398326878127378453694437841572896981382477415597619874757672251915896646373472941655423595855182147285522283481792423185577822741979357823599656753681532238615594691313411132325763228891342348238881773661959572112645469535368157824216514252351334572718754944755484935762247655384414329184678227823949368135213581151383983958191595424593771396381889787876429141382289755645531155614494493147873712145439393573244353322744582411432415267282971187971724773978547524892716461461863333593688716393398653819194813382317263928377232312579469832554637389688546585196267296676315326625233633276941245511989545828646715717113823976247479456717281235488257312954162451123343916758481455323985792255145158167499547153832152658394763287548584523697277889612998719727415369396126785625977356611341556842765748199611883354514145342373323968486394127638396881234837461747358445429377482534623348618825698972489313248281271987165124955117316527391925479421123495878283396214591143588446156186149222618744137711299943437735279174485916635897153921925386655365336324311671213221449464435333256611982598274198413851193749857964576835491142324753372398354911946563939337649913481476441681792675893296213976411633131756827663621251152183992217373812759477666732563421544328231742335837625838734243147651514975749149947771995464786268827194168393836561277679937342631996439463497643173514547233812441112272541661355897179699252776144553366983616316262193343525719919883115617179317623526245926716754687911377948635622944361862533699763256788525717914566171729258313844482456375476253766926962788543437249376778625654318416122955216529444582626179213454175644624542381814443257427353664363998259585624657946195145245745564648844226669451849575845438996889811693612742165679836752766875329342435276335228374996185187773682332168133412215927259485791711196463867875493216939133453325916615917558372652547554893514987633982547299296296128139399317994389472751911864228472234233143512774652687353923916325967993633777482147436458218582351256564192264727957371361157695116394239645468738311595684678965912646115141843719511825581281227813215748778387959892512729579752941219423777919487619772357655564932467235465993468371474323726233933994311345218319273625446835885812471411733751545665863821653651448916263355178658983158355647133484211675359946644773266462746566255741497451772139195547494441451469797872491126649127716127819155731878518988884294362763126671212321292342721433122782844873658133673595967153219494967223126122926962645472844229535857336637173496973451934334596498231739156272418138252942744521663312984883792285541355918293771119475655717215298817142754161558428942239491698932955841125156339871322561295868957963346248733443514784333173531968979827712454714719583517826612938365115885826512995541912522176611586555535455922931967172478275998269684349694868856347962333661441982995783933668498992714934221641222141282166822342127134939722152375568675135989382117675724881626187562917898587143121881574458937854187142213929674324191529792339349266136115967745123221695921615673738549668975297558843377162553175826917389447891721792851682871315244663456976294134961347613946585734319332842477973768551464156423922612488288366863823652459582677126525778921244376488368132241385213421948376885415813535684649812388832117734474617382625831361989548389714882332548233324544917539913288316827564786235189518367777923493713449541997828977591563325593489825524987665683552254346678893514311639971539565842668374846921491397567737311655769238579959654481189952394464898198342263121854112257439415775671469723138725272781544865133276518914523839851916111359242913871313234769233832234461326493341228973768328728315387549321839973155572298387832655831156899698222495429927973832326779521778196223635267162411946171966289468957522885993295783525273494189889136411665613282437619573399248114373641616332285147915449855242337263176571373767479632455951577385317973222942957248973147424893116166917162329896343751532228334321253869226886236877451645954496278993124876323494168422562374635346442437729357623987826225783219318313347472741973136456618274824529878923785648447644545599594181488265733828151433413886716581332343994351627218733431658466853323861472578392583342916921947543775817666161256437868798364358812134993783963238389111267332979416566356194377433531287186441966767365262553374266916866694798549564241481331473498396131297728914197783557969446511373124173821129261578687418818372499126653472114152417675218842584576164493654471962778286425343758523245531127522269792654383381263226621295983332192791856647943484782624724677168455165342114691183253162623495511146117848537195314587733429792165952271111772521993353772399548692849771986592337341761164757763147616449358387145642938199156487584316298151556379956851198931532937412693863393562113297249647248757282835774441984919355525978394319249242188545316232173653796544431593827257415164888912961141667969355245498158138385349788685891845438248142311389519337886137477425136465175322868634899896122752873221415753461312331136257781646344158678119159768452246247338599462693611478372577978869474469177877941937795786867866956848612739445789437173352385741599431139279113927256585495666211218651444714281947282739128619699415719969862689645232943341143722199924658956278515737627436986457198695455493335447875346858123234131417311764252142354656681737641172323485521928233462918743994846939833297677476928285239397524134835177812372598172778684967441835876795144711284138151238782514625252314234259432321645145482463124749272671441321841314261132558627372544831774878878383138263168541643771334486197515148645886912771571256919339547124261711342212495144764955356128727125423212277197997112976955933936214686599594512643248591373395544576613942121528848428614116286817712114196322294412911583778211959678773773312127133264936641919489648574782193533387639678544688519925398981817162351733191487892739678883752832999911254264667881653364961539316293355581886924139512657113829231277411488162393826713264254331134445235298377433834743585787942773135969987421738167296823134564585288515128215381626384526225415435149968668917531416195237631691835978529621882761485384536621281389824665325236143848782992434827472943255622589611674323459157394276399925761142531638576977726847338165591228377169143663496437367975241256744478928716916983714196542396667915649746227218667829319249921342584128136133132627666594152311288362276823961927651713746645941694228187711583927982259365362845555864973449228569881428117157759178762247619564822365943814853463844388812743647348883439244954179512483464872845353167634434672353975365528442556151512655264912834188327716883773181995996496211983743399368767249554273896625435431823582666651898126637542323275946657223176629586882713734278522411392426996238849921335483263589293921162369615812272731726252687549843844724785755969833914868774324229952171449146541773419868346827685943249745462481123162394429265121269726477485515151136981449611481413937732939552248113855774935683185142549835321148593845111734224757398656461277491832791728275776462921867986432147962883165165572132933818391434291811789391391188813541344491942117289824582653368423796462788596622169951583124425551798855363675759162534745536975179579237499917957153315671939624724634846645666273596125191418972453475628615619296455619984668727595616412125312921866334743958783663641575373153341861251893463491578877673246541137552191575215219512597343232618635136512487178335828126626655639812335268457992893527142981616171456689435714111796671314186118485217393722668365257434839785749851612456849281537176473758661534358596583273597238326496211884324742962922825214894562283626841339658447516785487184683559288624779911289823424579846377488757559457164328711589486394846272571468753614169541735774694841169612597985377644691213935226318735272476347656897962526942772137525271261115281914663714218442666161912961184771253158295154272344541662442845152892155921195162322517845112619497541246515394672157197177126516416986373547941415142274794661514497168279944754365639488967659573283151422279734764178854648228499124278859165982723693516539167839452448541818865762733278245849412168327346584858266469286213265866672213841883466522291162679499777529487223319269851466782375436681671161997854749232481446179356365462192195438239968242944915726537784386661147125556611744643379929496234821817645279592747949847236553629783923447984311542288916274447569864424793298229877476964991514752387994155516984457168952194665689165883281656866541392132138865492111475577127153612682532184788975695534284279769121313119782337492819214918494549696245681724111154266594225367751129463236921991456364141828312365883515693158771548898235783356463436816221244253331458465581179487234751186833279955582755746713387384668349987455167233337735721494214972324418449195884126557696646527939794918184826864332136245776297923168582739334664163631511583772226212948181431285166116988317476658228915742594522332611399338193468345812746243595612953291229388426843817112137163583232273331189479731893641263851551496768956715631579855545376313983832714396153863297137514669557646184473926141511238968114424173154577729749877619256143958162418592314383351153289521793124947577885993261361992221219472389435717121878691131848461769494467337561226642169238524355935782413886265436492623183245394218859258271119646242963414738282257881694632481977956545516115676915894759418374876661593715584324583644824311168679173531127146864481963276555573745171337372783763713795238612622911289126231514624577246227636931585534959249196417683633546452737716142793765441483268224421255484288441241582454474295225847925256684142126527731462544316734613338545532779219645514589413211334523693156374259974534234257119291725143495362637861853719211255134111456413929752698111193956872737425145195952749584521784413142547694326425783448841994544591373249342482636959557464163632334965727548777779285423835859513159157339356325846394442643387176786989271287734454633421147195223631821928957564487444697334855468827197895412337175231546468269737369976254839479817552928145185375885235957152869535656753756461269843265663383117919327435773497582716481876418157473562667168315946989246714682781163129199381787198316761532439424438878914368333285653353587868852282523159547258975872636221166946334332698123611845885386318536369653259679533479758183133711342782149491485786159165884994555226499983677161381794141951126337925543828335517116395699522635511665633821642787922521356986286678393589633424316861734375463716872122364117495333929636953264225686339718176472117478654816714463848641789522443454359916931655737912583912814314377136686539625699712933189279917448118435356323816128536748615565713136266385237793662227274592655168384683991248414289418151673623288611952131261615448646695837617298426675517475486578694159685725245576458719533598935819836363493593926637477123465893756377353448128316167634611129556174637376394434348313759247173423333274164221513198741352812169589776812115326222943355594511498817568221239639143784599995799164274496313493675411731933982665579559156768714195976775352135614397994576589297415364745124811335239387376232925761382177171532344572121329717617923967379865431431724543592764489663426314244622729238332468762178511494915862879869165154892935533881483588525649277979943817691459948162981742212238215821266678972253329564127827334699645687312375381654171817345738323225542284881872416749122885615881857656755925769741535773281632541818966743542347514353523412514428875284959181764664663834828977945179148429561667173385334624273211839848264198929455246276921137122172846613534623777393151322282613266598429899377268463714891829761831299649266396582877514513864436115916619544635782972835645879296384712456957927193312318833989523593489548313559593773311575927276884713441344769481153448425751515851319169758437539299552286452442811453212317729431666874745173993235671168459988262856973545113687834677671162714613979651317669199676912292919257431233819433974482375287422862334973433283745975941779322249777444511457355545575181293595677195629522589259964464549277429262586135193969884368228136621921858931382949644965569642248665138481244361565177767684863124753539225661946322521563913556993754745986118566123987924278167614241566268722953488391423774316339886531412132923626485217596133114844771393875612173845291529395816716351134869752331451956894686382576582484645514816172441568541191233786357596925554196497378628589818139986379248877436233674184488523715145214323746421654778245612428995474624172917663674965869623222212183674798369223922398768755785116452186821969751632397527336342253382335628434869422767435346413987774883874683982734871834638689618648163917318878846866379147224223352957419641191614741491436774574813163736248258764899268562677663773851535912169438556669845814583583359589415214479387528153254571476566299114918875199528279538541432334138899241585631636932766617182378824781828973231493236938892389327356142772354439854626657157533765973426456873586492998968281822399688568632526859694719614188115612234561671223254132418219434211616672137642473674442113276382248599516448111544461463911379475161153912145915249926754554954599724869434899323468117146132971635334815828489541544371122161715222434344211179424489984477287628966127177564892367325366428783978633994657578981174118556857698965768539471739861965399582163464354431421371381529614381448526145993594587644477856454935673444556887225222765554517597499659572526551217854971293266946582787977458837972915144531743642445415263313155636795658376772954338334851967715467742771661598667521169712873681529246792622295726756414117134522315477964715419957611135126157453174426254993779293287526486513425558691758116173167195724277624263245831424528855195966161885839591731739724813661543787615262226624862119363123463493628279431124344181413693136482286969645455299545917325715671358869417568762418321272212478721428434353528397389944238694243772575771383537774996973533547778151262217551428543321432451711477129659531492614883567654241371481786597139384676113633592949669144175577918186188878835659721296157733271888535127282254764462919121282466872248363699411242695636293686278558597332628663911448118355841454458926622695646823653547361235189329872525343716263875677967782217526937185663454297236385494722163458927546769315979225412534871215669252524948763166942988795565695433638353625156148762198751171573834215335637577961634458466441942256481111624318562926383411286112321458734675935735481762135997842153465173642235613982866955219645191626126223556697677274989894754389536694663325969653536687494394484883612953937884672545519245911687942222384566831648989491625532885265345112946337766724891936496799976856691774191268291434496891924696747672135342964871414514944258693484288141614525771127242953568591314412651547244792674756191573347287814197353732238597196248531517645936714923415825621822931594482645445655723342294772485465343255147128662197436345831157634535785845662243166792721729313341789339524671318884567845181414477462992124658671355827559425626824616189955747237724576928738672349742279882498911297162127812316563628692476822514769872839923872396594195752297918635639869212269962273619613832131835332541161265366673912678916432545347217136287766167933812341198217936464157512328959871634258949258844251635669987546194816256388835916514142945374613851224889453197351147913159992428324921497469383912824919163436266776559386449961289834437688578283329951178118646495759485618414924451231794212965432445332385694136197752813272616298132359216319741315855645277746483864229799296854351619798759567756768368869623755333843466194234241519686526323936643439144198354941222292447648713448335182314648827922751172246269834686725267919657425972982283783672622262876717891469939119329771613962453292492625296773946182237326542858156436536932396573435129588811918343429612622668969916327787324151822774834813854648564123471282929539727631466621566525125241694327879662987766633164413612528891441658954533929157636415585815651935524748726391498644434637326259144919631254885787294839885515725864528911729934951515198181197392225576754472681964618253239237227913252444696511473231625529766312317764887538433384128995654135697194711642779667662339821993323189123267985273127937299492715282259931999298223824662544166246747458748621545686436414645739816717246574969135511382399334666269647582463229388685736533938442992725249256787877423951966324135355872329976799256581646411894298233513131233995513816251647478477426843117335277451931664586643242953125889843753331593387195337315667687115445443859733535596547736639418681445576443134194412983796141919928621424781473541699974132194765543621772478689248583945958232241616559736665448244916621787438459863313443938681925277425727171553878389187593547775758898856124541377759641566129879454391943699619589377646765832664848172343579674247642521713641476872275944424931491882666938388742439889836453619826997279177655497336515251292166563975322752442953785331484422434979365464921975828733384288858468127964541342429625612563243188824848944299591377752939513529777948213487964528859626268629984482353695518368439926826345171879291115642367444856936282187497113573467785884522634254412471381456999411537878466829966185923327136367167913414345816199848845792881766636891918957754969525382576765685234661426434442456334747939276145282528542438143299213951646599371616653287346747159515492735191513682219291558859465157499668222181581669192141448257727831144471621738516797498935149755621278193295391814987931122591842398355517583514534376765543947237815521362753766747934812796326242297161297932771161736642327226423784275987384954313316698345257464442328826279579593559877369776948646211531131745823641231886858769413544589613754659813149215321482338289646622122264357198721999345419661617242535117936286794626517813685469912743335747197841513876275666826288396376778415768134378721691671485336328536993777414924348996389122299365288719394175732546835464917533986179321352988163128672319478368775587756884218915239959393169143929636615621449358194521399384251489855181672218723412226599232123113224832432612461142523297671863443954856969927583162229922978851162691223719612782876327245461486892615488561576879172732287882934145564157848425916658521984911485323929772534519315537482283118343221152693818327722573269583529632846716265845919991183649342267739552349217768167176596728182892642961313175281578871932852584291953584979692167381613163998712181132489319762944268951341163292328428315753456354419451868487658242685255582515462559326981214847456743547816713759966867439598172957748729558385354849113471315356812186962221356677441639253249326852872769231111926391876293629481217649524353226694321939126893594375764517939892562392661621932585323392855312855932549765433321554283913789292386781921752221633584722544553288568197969649345152267672511519445812735213421123694227998413188682153478678827174355819493282411735234111993639567613958962163928481974625221931424432935768244392825892554623223155263921216113546184926452979535629269651272968931169561381132826343991311419237673333864963646995343774318498184312785659251359225622981748286481277858271181487532527252862725627451117462659134226251664497968252289455612426753931295359511514754285468752489348275383475682314557364921881116745569189357465799547173189558234753761292385716189344382682572756264462875265831997363567583354725992337521578946429641269947428297111737612897898143741314717679173253828566287534633239947475854797564599762695837831166826337781955921793457525346867845747582979744373123999421689959218597583139936512474112554168545368884331698871454429358333456155575718451833414865214947258689937242761686916665354451564414997625927521763382221454186921342714175324153239652158391725135555149425238968453969888756161899651723864422517645232541984944531426385139431577359189845731729784534178677322739391442844443855166285911314953962351453514793115846854853791889991146519136611156677722126474558646485134296687774661956528415333264411651541531449171986293541379928166889138651939417239698311547928613473751383314523766723763621663311512134413429167239299773431791668212463456583213956528558163448775583684746831428146431675563768719994625757543353613556256622714722636251849413469213818747872961228338262745331644458734413942424324254538425996288553474292114977764475885839256542818629386938862827213811677752896422656545612613889792918872915336992611177147479133741888713644197426829274453943541359539435646494838849443393561635997122538363738716472611814295145937868278273977641211874376997282619451845672158866882315916817294763439754213219331325315963493138326195572464222188993727616265451169692142323315134474912841842728586643652321238451658589183882612526155352753576191332492194766725557886231272391982996271526671347154712223152634744933996684251965779543873491555715792799847258815625318968563231872423587218512711245759175144776881779438269353581932629254443196429526576836462266477847551889821434921295238535429465759974579742989988938185656742359752254328735265235811611425767745265194814481518749159445133135763181363728557347467545979239325234329783454545292423115931983218861555477464271556596214659169831675556529117822978326541271222612368245813869468424561391331788533412891464765253113414223387192884922829185834162946619654974136348562341921778442527749873421444369351175992473682935247513142527738471731971835936374475245622778231814786193216893463678777272985589161655817715361413181845351749113114789338315927261595125893466918757894126512849251647341386989264898117167745726852298155118222227216211943751638629271143414167411438813637212751658755681417923945197421936139944176961136122298656694535175272357961234818254199634587632269549638319133141192793539261979414635278319725185472548592425185784552862444169235631417924534336969316128623411431727681121724522158253563682723472472417416699781593725474976739826783463286248918314277358372119867725327736288244124889243563596516184212232597627372236929227793277812216551724751847546156593416273925953391537211468576848196989596623748676294969239162192463578388728383412178392278463291642953294213959188964263311478933718234641932785264289174116727628219382252545627312189463262379489982567132157828931886748127848821979827926945538715587888397158622651118475835372568312382279817926836724564611548389268125496341592821357841956497878783516187698562661171874224831564592453422528617434812247889265567948988342868195961178511643322244949229969778838432911155674284419154647712291241472566623538999776593476223334293773296235462917913734283154991412788731146745388544278175546448416543658154498441671982623116419944427917911125123351634964545919195631826185431432597681525356865889915765321244534465128934179618729772789596868452246228799465915247162877452428591198425349177242423371923852171532634339866419954479597743859931298728944985346699811914829528252549352577391424469972726277371418974919696553644126157448777715393692141567649388692539728311736142432888549454129762677418574674867627669854374477353288943356479841464151623972596174615592573472394891666568479637845976345616355582526626178324949352313278568676142612696851774851336332663639513938298253815676834135228635658429186532781651348871253826771862551412547338323425975494125277924937188154184267487389574323995744255148968298919723329758543226518247569392362665165646485869198643362741744971276925699199832254875973723241867344532433693721565526219682444567953757248233399317355826341455928127337433967392268472712498478392643645882637162346952951326344225388742662743763864981578214266747426538149555948652713914919862314734412712362585787882333528452241564567152351647942124483915182411925798141938982736766679131661293736398482913492897729574893289315851319425943519996679684159132112767767376775664463475846875351463358272412488489264924522214267364366833936358859899779181739417836594438199842639966627656253482965172567952279516425888173377497267966414589677184127773514371391835565625567267922416321814612961212241221575341236526426332367913551991285233649928281637792847767514687164378363272235171149213518425815884542741535382731613114535435263383156114716686395737724814125445543542687199615173755449162393691614111793871654223766386579157397458293554877392622255668289615731899925821273748929925451268776418257888657166297254471792917512544227846553522518239659629597761137967628333582536621926541355644382525665557524279435371494948359343535823182194416399795784973745491982923833221419381373841897679914593289988434633722779897817465944511558286362467338948255738242995422538332754551911883815714598128463146737413255868479125845752861197334655681295182642386242118825888518214634668546369821858323635172163337151644268294686234332323813462414732418722114228312393521659939449179325884277663662174193548388483328884889257334821979718344161134115343816132997389359185943148444948157988688236526419421882632411583727655717345336276734758434326697882319526549356992953961914971978346834262563326141263179691681122269237954436315758137368751156459243285563156254419129939128664224355484737978493836968245441669163219696579561673331116472675449425466934441723937419139222255828419675889115921551386224938875313924848261273462652162251125911936722959795813194954641427548584917121371236313642339727782541313727622137767476921692451173649899895924559436192656216792434243539987626446843688265829236678444391754476885451716883832198152496689371236751795237775426145124738384395521282321554355211518675672931342198741779349448547172545328333735331377679882853743948689183371411963796297769444349834914925315618921191478995214669251286111757368399241794196392871469741651134613181492547542142238818365652253411621184257785377645988693357324122288842664999959999388137329177793789279167322651175211886327936288764656961875715783728274215371873896638421829359928325226171847139276795814156857176173844274239142442393148746693414229147824174372743244669227262311865635968243736187172531331467445826831682256255147371143218866428943295414734842144153494538162471515596644534986969295641339735737843386787573479764572555223719492755952162677247364981645213137284623384171576356211167341238982535474394536287151868482713338519118189795735243851483437719122676856413159348851455242115471942726775124462696951625427199612737686734649943586193266661519529851415311117968838466665544666466317967953451959494651385881157679813629824563247419964968478234331518321779836545997215535761917323293632378249912755378634414654741738134171565581612135896265545729747146351814919232892725964473172968232841681467837194914584868944961354538555852661955229928836673278564321426178393871239543867653769995323933334347528517485685414994413116336564126513553972116454922394657826299411358732681411635688497893873166128912446228687264821549517212667725855491141323916753697422886243886361814416973125815599662695641751548735956652975155625948793594368147654581997827852675941423773519875156423768363855277211386367274611233212435658991133843415847245561564198862596531837874637263652748535977162998467254429196535122347161195164173722737692134621366624171233515258576194639154632348616115423624263478121293166466833273165516485747934348158948669366663329528179669211145849517666884837518161831221622231386252594453626379646149336589952629192435817387681786935426924364246629848697259192586364663469949162875498945786225221849726163858643324285335778635589283249551693848752854379334571555624799327171622648211625861166243666985139112673584761392257456351775787434122598546689221864179689935812918721147433545746598865926145851363445654779663639487127836751236963783852694872353569371842551881554399527585958416132223733215629469644259696689843589255735672626815782877686429412233312774882811361344524728318771521896394124742676658639335575946938626328911854483367813766548795155211233922367459164458637615532911194719382131782421361589652416452547443138929637511211161345634636292518184415968583133914165342539464832135732892257817929111158141265398492398583557474537135895371972921276661793641426942716296923211838737431136968697444746245277924145287479426936675236742119549354244964116831916451811822796142429547848683724197315814318433693126336375255282482339314946943859363843245544267358337934499424549913455122863928569562143446764995238774583989275537842376521423432851463363632227757415361645277273165849895238926182282414227556934926141488749985548438265338132396619578348911882335756884933313523988586529533655596922696127318494129157988776981781773252218371365824379785777828513653431118254199439184239183436339235885525981716172463866326539437155278471917177413174785124448265544644436187367284826636567127124632815713158746828525779754149344227447913277886926611442841243511841341651347588546319929953612437989646548432959887491213915844274585233386257493491489269476469458246545348291792971562231373398479618957435537311583631357689143542753732579199762323195113527166735546368812876871941523243943539149477315525159848767441371646782481912475419193337188635287252472345216811623176823358573359243958419331677126829552263847455373127138868732475121427474799563112113398822391179792173612411449534731952724158628127761445856237736868471465393191255211758385921528282879437893874195719634621863139631572588897667562373413255343442215389357112652691241948832496158157797625949364644533312943195735283841247486831714554426317533555812837777736474184562227485324145834229436877254145779873474599468492311384662458275293163243538537776959713975348328759248912112176436484811295143558951181241718266267126292762341286673983334298397298662415537361531242938644217953282153541128349581214851459368667917542754252415512472144267213221874756392322531741478893516331473737515351654287233465793465825793395191995363648966939148161184557521563277752726696379527233466945529563868473944478582394616235243819118155457816497677582659974474318244529342663124987889376694268674169438374827196724963626584698861917862951524267987544851828238787964661564838797911571324684667923792654651238648913958556121195246668894425265257848986433483655555241484132382967868538732872186669296648996598184985594922133641562341757364282748392366316797489752822228168893877233187113314783349885936243943781586637649134968498546634779613435223283492782277286627595195662965475665292674479162351877371829747273394428889568923254144551156883973971769214716535859932214294477579791441619212461915547378882567648727389379471111315274655246426611496946482183112881336725171264212741863478362713423271652111621251543188216624751489267839684532593571253919647657793142547484918232427665944924427277438414884475249637958192724629784415561231463931214986362966446821782128935736566113179485464975982363891123866384513343473428743567434255833822867775152812146937316637345459645213869489179323689315941771262324529218214211864685549566176546363812482183757111432737178457475313911333341149643346478563833246256125487211734198845115421634491228157812652138634166231545767371889946234248276826799133172537449647688591125594513632937933844118353343988988664856541543531529565933676375736126317917563285651138316694821214546864333622333394939969242379138986958834342787119154321241929868919113676239231233672572369435739132972771389894563211743724233541366659167649957249126267195617444953522131818245155647176644546861425711883829864282228462696444139784443264289771296374631843568965481867612415513652835424622145375485553848246431766336385839694231896663651945434827233412298131997546119189471654231825428396534471878325984217194152658354536778262465739311482112945479854633272692971285799929461748968681633463184669314433694143322898163948124716977932217414456583144941555749928111874757872781453682957175759178542741749963373258345165151165348627963189395435313992334785889313173341819243697234421227716621711447473644862812157678997771982852989146631844511458895725961199142234849243922273473973858387153785161177325548898914632551634686683321124227991495321164824166481831434669896915762462243432671372583746322861552429417491749837186265797137614218326385652168846253677836791393412965419879424683461351144727628346281983489277186959844625212246654121116291967752271628848621839786822246274273516272114243478413665974341767434443918584894383214233246462885234954114238981516427969241587555462724222356149743452519481637516638133428647452922774677556445916947264439199212388588716594155685895643123681661967977739959546432982471758697919192425232212536484355948345296955325636789569741882436719676317123715136386562897567295398437716661575697298468113675885253834415449512683555976813613862122499463917452559477141117369788933249993389263829649624887663732499641129586955849551913978681411381354631314182411781173188377588783536391296754795143711184538789873632769564846943999794299596726974514895717752272734952266524194226316454856373959264446884379558326976953813125316381486678448213915166321468133881383685139432991755444815516844573961663574488572631318378812975151157242422188395818716571142595956184581278438243464925627843396868516339211246792457491816443784422371313216821781743251333817387372457342255313669529282684738716655342558656586557284178493617936823151988952783857232745313396244166622796755912671684757465596988124769498442135578672783272412442816146243464866848621656485633259518268586246816341863928262146963238127879664891673251283785851246528794769945261945761436697352736637411822292184524534172919279263325435963548631538941577625591649454298172721264436174598481631462252717274235191832997525183561921324753849256425253319512945412517732532789762212359914726222747837127233744542994765525956738514175766136932438954945152277583757428451523729387146242179441516293369367639416548786282147793951511793351144137682983646165141939234462533191726195581133687659228193428394553643843257827871582529158462139167442771366879742118714715112834657431323489953394221865741118532257523233543491227326534488932488889498235915252873443159274542937282835991537318118289563332148134714957318847644813488816342884931462634332437795915295282876887885585257425127544682121189196394137554584963176523123697124522969867576299698628592761876221131822144514617223435573259344667656169917377746563314923963813292248857915179284335267384214347468541136369872646853659246158378514894986981126128828513819677712154733493199948518417954137943615768883649725113194119448311463412157776931494277354244747615136181485258533468566115918254781365492411168473421657849643459369131483324489248251932161798174985235979883456831252651553744759174853557628637782722293499527517667431735256421258394816782274313215169738989259439166943634732373126644912811175116335428625682223639175462219187935528131659614221211966831544774522661225786618589626119842551791741531816298737777187144621669887791935394422432475511121677771561179434131569325824281245345587844583664276212483438787237614119539653299763913975462429356845356398612225366695287449774197255489626641545145511153439267534594225245457133522814196761532441137394958535477991445127863223279656667587224373984827753163993274867463552748439225232446298646214619164458164118615595968136177611114132742733547899411264267178788166854172513689551786329963927122211315339136538792155698151617293227264349778177996791613856141563376147655546739322647216343523212347686647271291436273495621735626424643557869531816427476772715348321649344777768826548289391486348335956635474945145824569652294259425431542846916314724989236187449338144926735566494683666443118927278539618656875579264557184564244759755492972242551393814872354791753784221119886764184152372818381846112826525949697923363633134658243892549296977553775479874946327429935849765355876271753144482216558742123874817466112855688191932319912426887251518213554956191494897154553244752355726656149213158633292957216799982613729747131223679152259452284143465581277247212582614681938778275499422644378331796315383568195731164664584161461843369375654298295812718769294446186537887389289681229823157498656694812541637382541135916218386151592173433948662162853198619385776424784257313442688996167434631414522929474428874625423391493396598722297391681973934441545877147896593762888983163164372171358616471687969246747832974141472211969751776547224194743422722974583959322824274957313561547773431532317215152989219437227549999473495377317436515169558375468372767174346838496153179181469989571476814351544936954556321777355246192517595219274124187225361947694313172355866653532878953285847865311396433244453661732518747462826318525152879643675929675932745911894742311916234612935172664378266599138319967324189298477788597838729983138878757262685394829611932993431767366166524985356684126645691179788385358896178518352686746155446857667743788125746384957283694692486335535513668361361139913428984722722492574916117475825946679182182842183113735962421768468812728165356756626541314378535835492558557772273692625912218535791896278223881744777951329252878413159281856531236975241534868954746889256115414584835933221727692236413492662569979571391358463534315335457977588626596679828233796233562651849672164863969562658435342576618855689224842411248664524558316628893841933242929758754356287476198967361472614748845963225123148951451467115783493157514335247979192927533119451641456875656225373935315227912683681676353297432233387231189575365541243131283132417477984715845152323912212669585561613794655153454424321741311771136637612879832731785984361737821323946377583786448992596477596884827232164264931681911425841432536899634378227311537584443753255851784311313445665427239919331578755915995962477983367311198973744327375172197451727567163815998339655412412192131121378543761948451222275137674877746847491283594247444436647485774474177383637144476122833399115913381215238927575479531415892241383614811422567533287871648347295723853777587953817339568122754227857355449867483157657485318411723362273723656156543123639761865371973393713374243249785731243698733677749927555677684466271939728776228182155975355311659539776725613369379236146111689314382965545782275974524174285628178418176894531512369135416874311554816541951224881625633544185256699791643892295386354957797537891347111157796426231144497743977263856516582266419467415794566394919932592247187222597595674912499156995131586169342877737219182754569562325393441454632573598986125428345951294586468234176838224659898824331646329569712425745533233945476692927517625369342479998573866519842597643274217365654862614289362835662123588435186539642138421617531635441923629268159553625839263674169495738979374746183243141784527335222598913865231649418157447747268849132388376763149363479384571741392753754191229631359566389576817788359216245492121363211241469138869299249411662845467856199167251831947262149817354497812332392887281139526797481887519616622239485791866355741438872753177356125284148671583178179419594884328787958337572964546229595661372136981476241651481911166243243734659459339457727665392974259231324985767339882718711896365951762546595128789597558546478369766618189118322347571927538638953275671988683447346744319526858697633961139432761562425539164811416749247256238226385888187761115268541472429191534169858146622165259775533224562818516425444491726268675177123815158393675728626131358361875865128626253197177962369233351182692511312858599648523331483119931123147877255677155539826745623264127634211414893724447461133592178538978888156837777225193117676326415581243519178143826836647241179442226275995862264818661817791764813331982784345653643488613347429382936457342569296344365168789633321964692886559115292865395183721151221766517893477422621523967785792446525274848561378424267374378532524478886476733414586986166484358342154126659595824596679563936829289726345138619224643614368631369978617548695874396525842231966395813439126991266886667529299535467812289153461665396685599186794399314987671526739419917446269455889246689715827137621364229523121149382254247427483665837793636235797968396714775281837218596251776734155731796448876698955571395345645242342939682415219125144189423191747211951243269148632343481482322121178327612554373493911511443523679771733791283754917365647356324552554645574697974312167727381682523339246916613731277983692417679851376584836282688999223533437133786123814635562992241666836493145435289522861183492349246462285251592468825233689165261931115436333868233635324161133739239354956592289565399124346473738751341763875359915858253328914819593875769943647981667856644774656852983728723133995872512225314837525122169195655527166534636767568952885164142553529176211561166841288584512958972117818367555419553263886912725326286791628374877942763349974822161692211529462463913794757615373852974428127922785751162284167344293156678964472948743643146847395884527396243716631358394887351384148368495352562416188822522315617953356928333435496439287854354261217213833123716134544754735392146611259256898174729312524317898956515129464815946724671844536298258877166242148449238415143474644266961573432764171711123779138238228267324346666959736177371865735162333358886714599142783384968192893779168447921717962157368218933831922565373181979955412118556326517771962818748973131452315735564445249744235752751563925557761454996168811269231542332345452824171355335667826433956126422256632343198216737113211554132571853955188793167816755454167633844462123418131748324635257455239591194783439751335374675312964618385416938496662714722452239955372212817556591684421767476162486637539976374423219859881584228512211292623121836779276349338582442243725333163625245352294441456179434658153439422454391739336932341931124642252711173525727949291853646837282191194567968333534751919452211765615364893954885876519591491549583254154936885253344246479728841868362584297598995124378325348853879437527971332644645319683252419251663967491576341389932238454175116527448663823428779666563237292835321336219686389781359611522424837329633871344719843737257345923611992881381772212898346336212936664369538526435876414984748835221513727822553995351384233912437277851364855474292939638285324441258414716249228714714184899225716195867167449929231624211757379241238629313558543716132499943435114227162669586861252354482656854451357337112264161562921457898638283283493739384357668948759815222691186423439658871268442436233594527818299473779375273565182326579268311568646795586296128828341572274471236158357537754767683394899251925425235418871525581473991827331118434265361318897847171172933113253466439883182582724732234582383653167935218358974291212633689285679257916937428372926931861159863652814418772372295588923476927117147817372778392221819916523197218471947361621621843266577211121583976145562654632787494542466824544644312516561327147677412285444633242528691783146833858259425545736343777485348766857793812865227824635142761927557725235143358453964148792761698755611595486297519947131246337366342276711217443245993986486892645961533471714857955151743776231954528321751722287746296926917166513345387271936448692235289468841257839447918172978322722872511323586552543258553864537719956973812283665225391412593781759574114538155313713468164472315834185416652352987877167553851616657323816339886316326455614427617233339838292798127529491578454598813573586195145423867293318622673852858217298552233245398234477663692782535493649162435598612645612815212735558119728957318638494218189796219223726811356366698945524468745739293892185766881898173566987873115281868324364236653828888312617151956844931372793248713655424726542663363113169745813968747832533562812351864571413358438261139969164956391551511481673745392924816253351155355148126735526726278486264698274829345357495828522227696835911163842493966774755513762578977813773132671524293522111272764289345233745795351857413217945714258158929361846922992357318184411436514783553747541998726449534294953518261219758855321817775145215316558166512341296344287336988722376962179191533574516879328226716834991523721315896326276819948938167446996283351526181352565634721364224838877553271172742235774639867788485843172673961451641411167966115392157588228442578743364434326554672671914775634673633814274332255615696212613163763364561575758538554318173343579226537441364169424152215632239328433153471451337655115144437283243598639434694315845282761211547494134432772118836232946849898565763974671498681864158291897881981282124745321447152225313424419731264696643362743215356922466193569111982216928121173981397467445443437638338834378444467922822517416116615576448983928176331192817727988619291963225825965715926767321523233985977271462126969743448152663227913475825175425771551717836136352162398745949384894514926911155332775783566344575341966333682757966782754861189598493296454649716374716529855585335214581128934293369856496312627545891228245482131143786743557168355643129593124228141353713737128267774254384418581273889269637532835894986719754154151674532629315241267551412128143495971492698814653821182836982545824934789343921449215733446395881846224664132524669251195467821395974434282946614325259223417589474491978695492563728192811993538531681525268623123445637115173373749128627511953182285462894818734339362473681143918279784542589347685443335119654215156518585941786919589266424817945734942372769585174651346573921548184254242735778113276894132756632231453388779448132357829356575477459332866769292822312699277487252482626412438193236492511483183584261552628137985842951375176285449986119996133214153722778945689241366686275236247742842591535672815577432382692388962667362584443452316816637597728589678638635163168437567273515633832639642624295115246197467978249324723173164913156553751117761111521125912461614712177791357183823216366542489732494475291499695734276392662433519488463285785273785481112384351748753723537642477661758838898945981333237863582217131231171866883629864643273368423854733987863595268945543466986373176578194122645352934781237439148594829333416147728711643876546819125941848257592472123187965142854435822798563973282648353634176583692819478227559251326357975574767695212927762436213337869967324933216111442163126618172633133386331418328197581478188689636237537629264994991951934332817691315239234226894665471674343988662784535392732592776842619869982548417324677757488419539651314951682691884366757318913446987394826397342531715321737791728659685386618957671347819246563813751825685218712616595132424366717649932321374178243227796859515524274551638291157238346454794678679553295737869724821975686178883463753247778373846126941833955358877393391179115231651549288452344496793941225499699613875628981421142584366939666831437293388223841215775198311783835167891338929192233784397379554237769519692378938149242325384163343282171819655586182226146515381635981878633136629872777722986569792381393616139563337228126144284873986417152453461938967523693756382824917547828654411641328716553278492616955755768126813324724623987165324688674166941247973741888352547588731961424728632297496638579932564998632517652175987971353469872349614123143792941455578243885862312731898627395454858632829917618631418822158468934776724272914333482747329373213991577492243951692931765359259314235844115796549264875425769628411712647321443349421824528555215961431992372638422842223777759718479912299797765756129756169112127198418239479838237128992473363339187963324298339767326667887532913874479615962451526682382776568496216523256573231818284587893129192768859753912538573484375747445877315797781278168153224286512133249175763117715534243713385312199164953661142792517843481664123442721177182836686691418192824571181591183337492149527577366539176314151425529214412136848111632263152296259114742666878756278878734648486457646272313576158692117725347933478565813429566283626385538429129771251282678599365476453432183313591996428416131827371838468589493328435316435987686181721169275694353834137318996125259484639886295355411213312467546674677287648222493174911715123535737691974947127961343458725527189878169621819412958253331584732896185383244876863414575517871743491412282475956741128346586831467755752857233932564667374276215685963575219262827482922892885543523174369734527139513451767649983439654753412473337433714212981472345258717882455359768367657737942718773775967775676282651611513763416846761735442878757828611815536285977912733529412829758224952146613429854996663882716843687435292135393519962472624882237112389216473597298758843966419312426457114968594624626751149167312261113763789151517368429734774933229517696111991345346651594976261247473213966359373662699154323999212397439962313129965148233298612338113447113341999172534296366197711352444898397182487428928512886641316493817625365218563829179412566261366818568972169321126663716194793177177167317438765827859354251128966544891128661975414559911749387837892637663924332274118713617261167143198259845119618363169882939846757645967526348333739421819686732191477315129242746763746718866229744246295164333741366875874369193819612647847775387591279574132245185177246784625766993171158874249547582455147974978311396146156943879423511524669887843597114997337625485361312135671389724445537784214966196399876294833387577472853851978186216319785551838921564624641291851715978369682998992445452683132388517165617758286619332654199293565844544997492886946912387842993584812687314624432771893734261773225861155719461555161437312555662944964475298372145521864431275359788433566267947852916353175199291421725499629735659476322184398735644916439886215151816115749633855427752495636416565827129955825456286511176744693784673416738731268183495532713349591839163583695468294613797541411199418323595226341416325181692354151487346624373631191858794153228661463455174783781696766868979289227743191391229344126656727878244892323932613532641523259527568887776425422926119794421114451393616767521556219739459593129589542168478194239653615717733518348239127651875952173456451292123542117584959991687852734971321194317763451695159486911638939873579676122496369898634427866356281416628759836525386119674992234322772689625177272559491156724426343333317136348931166442535149564465232187859523193471658549474382756854341222589486233245624146213589772285647789983473661979476941299179989153549694756435771549335678721487156551667296214644784287275483642639863958351539183682269693118452434631244357313342693293645955246969191395125142833377725563291443931675963753135514999581429525414868111232766524798699485517851366792826293813595637221648256166811914545419264929397826524799499937757957838429882213659519223256713779974313889595288726928483263255225497365379842466738311353213377521598866512585533434435458315519697952352961771945153754473325874142669522946823624875645531843278146914586722143285129724267464927542748611668714149721131232931218423299319849816821624762255383247955329898586522372133342355195443263585297132184938893393987482174557158845296979386571122449121617661294394798394725135164594113444488299394156376333284185119724281572528231348954198618917977546574716527417273336581181117494292643619562384947461544631519178256955424811418742997533634241356999952955845815794382536883652516723228168796536881437486877775637965619254447463492593472179627922481128478732113753299571219144646212733425294474695411198656978628727447117617273737732875424775537723418972891754462533376384154656364699161928551947384828866387981883248238137488345899789113327992981259371566994254844981316617493671711436836413137752568755668657112451574817593948645177428292356979567276982983127965251435648468769443862631112397463978484566315121582637563282523667369139365779421575252559232847772398115374137278418143313663474268621369462446969217723766964181158777719243933285532298472687736849769493764539381261242873739662141412465867717972937975655118949343448752666737751582184714332216469951678216589437613923682761694818837351736748226115611729573448355136343458335811589429178132771241438198313188787923249664612473587261631364595439166633275415923547528299876387956645752594642593227845172225523191171811412845415582811875738952165539385842345376739533452374811157847259616375182973921158697718124526632323252582874957448132538792172528233415218976244374127955179422264721684381372967871443656479377873315736386654446556167894566127191622228673295826152892127276987816153125621981361598234835698418128395716617314997596783451972848626882476722838565843751447896666643698399214876128535759755856864113498596272675243864184449868182846545868676626496131714857627464973745487721831553119974386692584846444773354772951882662941129551516914142177514343816872366197572258414211849825528123195652287274325514188181339476734186985672255274129869416252331761458977834437655132646832839156692135334461336331913522767751728659621416763772271286187222332281257373921276213415488889568434151366239161522972523881427672545391536552594286674172756652619417575471817682726347565216692914891788832422158229546497885425345642616661128852818252349963515143993151879742767641469191185941764793569145241795661318493642793949388189424756899551467434336161471627143693491813943359363771523155262213914222683575646738967143691912429657966213567691542896441567516292357332444295482827466745485559427721112118717955479856611848456333875496823152427141733319948874541545715521139441167459394864952166744215919558382329597955183679396716749131655997794553672917691586542965874917418432987472628599262593828882214957733124443118598815648954446937149763723963635633236437768589399937186924543897948163311827681757995684591386646289235226444687613291293383347227953525681424915128945685599152239238398687276939217451666354653578263726189466251182171413134925362914532271528495754921175144574416189175165728965385119462478144472745753731643626469373422615973682612131725428766142819254123311481672535224289154474131849867536242418244565337479225664921186453923984754238483123854436142824884116144638762417491337847874213358325998484126624314472234665672638526589991579212827932645612319942124846287684478397841951577725873879656699963948134291843296454724523548733513942868364492676192456191256315644837562255736867893743821882435546312975668178675137742298759967927652931878326998771661897741121213227436214794814847352784499467996684133222151273732766376114726641984833116152498683194985188627311547732193276673718782616374255265378149947959572788855745153543666533353295715524544874232734563411373819573729154849545783367222456289161357466682827873244325245217953653933741352972473632651288232245921115699561471387849185891846354332212748682499695142685675388773617751751225268778381833454286454394792757423649613396435151265745649862183132474544992544762821257986233443941596351513634233276825776486935584435846943596768125756926469536149549152728134151971927768191123379771781424838769377422721325591413129785388454979421431337565218162692457222921515483187587475815316865184847246595843536145186545458156248767453365353632689949736135659279888963433217949141616444961548319866224884393925929927759936532472235651936185711567984399242418841838845613791961144263192897434748938234981447223861319564733923159775458584636797155916714978722587246241987486623985315667522365436193146453537924951973815383691789119698442371179382721138519196719611437333553292356229512679554815627645517983841654474945632188179517359933988715395613354173336652642132514586258268466311282792889284872761983178911715739913614181799232468257765927626224296759831854446768474884843921729569572325362892938496791563136489724161914486861683273824641128875855643569978966255232967648313496862939729965372571756655433365248765744623168849192453675596981662474361595631756944378834555753988195277633737181363765481958137148619479277948791538175537175233118159984142623366569689313242416897266735376342734613836166223396161275397637473822153148136843421492338936554546276862218697591444527453135227943613386783439539542413956854195276827533794673219573695245926827828377363325678889217315845566587993622981285215496813683689338281521653549914842932498249213326624834259723387822467199687117777993775266944167761212163635111833979976971411812694155778163798873614572396196522575187688896519247962144126271371766325176925928543869778942883574267239781558617635946482511629356633232226914455458234497396924543127718847386214413513132164177924865925735567819911313277661769594595911267195594611859556318649781558396734748739846236586974121694476283579617123576484496462713221133242186287495554553766743627567545828367392928164555628228676359268439433272972838862324296649158544836649832844419435866522121378957152235862739778652794128491373846274516231945665183557484479113615318921451319271928629329216492187125832193334311333814952946329342429273432545124847616157773686486282324559122786519365722592145475294715456164114475158338532941981567658854294677882173892468239638341847671369482724763228248132879537819256221775981719592921327247239892343364153465861434874826262946388673588663299154626475233392393488494371556338493627548432566742995611744314532751111931529671976552848126336595851316659575591476281669856137642378671974373234393459143263552786594767237416166481276735977786767444959295877587711391855645912235413153925648518665345976296425695274224471536138418969241277212654914893356221633398723233331223888727782474732363359487271369362931587657322443213344411649249522954215523588771919515453696228499789471415879415473497718753592574927425939271484862215526928614878888633247987739234831678578934671249199514965275228214146227814531432414192221977311461488695129265558787286825349255525714821999743741791222392219649495998415648955974224477725432956275139779329741323384538728923978573322691443528236297842173937749121655288775463392169436743311695767792828184334359377934692396192534147687934334715169438719635247854273566724164371479113933717776974639812427483323852169838566943346845446779651826411273259293683549461544338628861131252951648922551454951341711487459143534248418787411276615773261223437523656292992468781126919273676745841188581885392562674452791911582693698428826217823744888393812898358721245449658149315299488145598924939556257187164575635182323253214659532164485932933455746593424266175553482197382847266169113467499886374162149784129971521256785616384896761894122933287631715489699969597468176216174952496988771944234424316673341718712881379467359369762863724618648334459475817837136371776279328199459638673262437167747273862184851824433543769869589146136527276913982366465771471816991837265354565562163131761675398434154628951885643434499324488183793448243752331132183787511327966732646585598448876647554228283175831939116555778653158742191183578431479992451112174167253988822571688732139886299556752233412658216558711194644247253874521273217171353224472241885421344872856383251124441199455528345292557945332512855271783734525851865265548354425499195243232844335139152594177463486592725564531354784469627312513944856599517981764232217794565897347322562936916743321971938236933756995143877297961343579881465712352156555975725986296891445169825552148193414354482238949351338393293942197798258273932789773833218818461494551958751381483734346324211688753326562825133169545277592138748264872847441833249536244926319565476577489253421789317564219625711328545247761286236944811549323183683648416167643397621934654411168791652687473921232472479418168679765268352752826219872517963494696389474447275281417966724791557348399245679116617298427662673858886817299485949682693265348323135276377578893135675613443554435312448635365245617777332692918734264151455825157565481429343868244628213295321875287455415911188622132653536386938727544234356597395787466831556531791688827414783747996654821873444529157687983625722191867215379181251312712616427475182834564583426844377118184631169552549933614341868971255323669246476438477914545211239449836921143575418385317581319956421419259327576954515492653359138274987624562274485295489847381978129714761796996826352659994271164853415888866846426586274869398198144654645421347645519419628482692312935921693396692177855923189345331543741869443432774755946546217121228161394176226158923279541273761461947318411172355873415813762919972298834689744466696958587586676589737797832724997239276736378116661631843698582148527292184748174926449551118817915894264481343193615117173537496197844243797563387745233649791591734317892113171295543254583267725784921875717795451142347861343111933375524612129911872852359995576682887263527578889584372692157629649473675987167751237328913457867683564348268487886373624854248332232182379984457273291978413241178588344529137636245623446646573473366261914282689348833413886746364797463831278535846284811342574936936695883983571492463112218441428648412423281281398856217831185676577879119258977955932348546834294983851451371271192361286585825683283753916314468257359924744686775888935449611354929959726212679272218862922342743855643263841418235775286254728566351694671326243327793143786352862171353143696236347697136887729669951595177372843925437454258253326397688614894217263797388922518693931541898332256831136827653134135431521934441359427311732319331817821127288632546227793565534893291232138695128432595278764255566737347595994113442164567415893735656725112813823929241231446242741862897542129882284828868238224644669789719358425831321777884452284591844349467718645818835934984514115631815491443465129179762627425117559579545623895646861253434893873427127172457481798526434488491491652225492315386992215339284213856753386691587281763142262872872313267742421346263723459895873572728143583353255828535978598469613831359389693132721368374531193795442197445897919348921386171328998816146526327252485237536531113427315758542391985613737664162579168158413754225614781957644825271789144347833565133866795289471582994818419784114374552398592392964779151944911543792575995149122661894424292437439282345369728671261356591135544319659581387276368912188857754257228295136431123992592282189272445311929331177849993486996351635763543512238766895252346878676993472214468942586861732273272395437221956482649935638569661124576247964234758867254684291693327367921159145553664457587593153716313522131621263595311461623759253717218221374452424947292733966676572264786114297183882139131633926918351267743957297497427193149419225661656387791289428455193253576691442228182863145128797676354652416152861945113819496148713427891743979249173276785386416637433783833789973648675496834442253387736697564797769889151383635622952446633636154154732497347757592282424696144148816429985417321151612114529227999837742299311149746955558156468764461911387873522284188335687248843918633294341497859619561234629569864992529642866621127835221331245645717364655429631814952664813818456651237962467427569796761222179916943897332683149767858864241421153487428247738191212983858321735573646931271487499619698635859477952986647358642791231322835899752754413852786147916777919125475278565985153353522663267712482572728399232459271244328596148262834288341749611159796833732623722949836878682963392227992368221177518373689326262325943686455599598717213464231613919227117431668952825864478272125381535531714847926237148816248782633968672399155546182545116297141122147911311444535631279152266881233536374746581519661464786621623771553813284125144123212411448354714926726149733923131648833221679915337291443169436974667261728527869972492752457847693125832354345721953244327774622475256871545844586193491641547116243548426514133655651881545774422126454681772357182846546271197119878365282399448344154352985579484187521579139354698395178686444594644868285923185363584756246723399649759936366331635614263376587146373541638666523225611734514668214544953824639696821475494519582271312688188679892393293551622247128671671853943258667624656174187365832223136637748799679331683121686596731486542865624246485335978454394482437245999479453944545311542655762944781427545541529475491798561434985556823529673235128525246247698584225469376181376764372252689326818984777429376471578426957368171739158125653999323159163116516581735783464584915137715773939176315832146871642962229519967362966887375717877638856724114654577633269611618924354515739643526998881987729121213896925264194564226141228717448882611444786361194559437697872675848163924413365195323434969333766351382872557368663526885251128822374415596191674217211842385783813527817457213975291179268359257495946952537898462984642667594571591233994331744776992139135482631263798383922778236763329934174196875318933259171664685522545145411557483345258369933315913161798863523557549964678319428386229643851136121113673371361681938795871936628648357267177765998944884799572135553798575858332168719265472312633524743218975649679649379522335233582297351222658468752361656657821769635929482537761937563741814766588659642153188599947333941267122411122173939672365168646749846631288536181189569346261899994754239733475753153677631969846417371475541736258472526481456356668216345548264111926132752843531821663433238286391271262281621371894537872487228153897592297946456789333115259954625271188619713156473893695543527313465572722558791298367698442414886682594154499683116217211472583224485187273242264825339325313424682829654471662716441968966892816613481584521337141948617527153361546666589173837292437294925268495253834868266541675487163383911457292626179578563717989943635927465271535299747575166728411783214314124745183178915894432957142532373959824143597874287596295271977633591972276359418627726814436178794352879757882756192678311432346599314135136468521781889523944798571635476489843595711787422334318398523354985431864238254163573725724898954686415943513342954354563478482853338721657481422674827831578757256228332939714954724665639195285788322183659119171845369445262721487893364219838913516526647347762326927153715358168672678626913576436719357777156511821331283445912922556866799923914219767452537415271285972835413299146917911155721465154452217355597742834861968998149911296875461412313971879461327864312951178524858839627884934116143931349644126566762389832558811652796413916878129341122861172353884688773972385141821232214826224951724932253372733557865599142116765694777585546636191288536797589932415438753568631621589411363243465827174445361577574312891137639353699613713632243653118593889761166556151342868637732435899423589584653483664335863281395468433781273148664773183218382549421941648417419792287414457433929552953167512638231196372557989299199874555578365429616916257326885163642455624185484859533972474483264684188413917826861634653589311538922613219797158926969434582133226851328769281251143745167984482979532116771945478616896795325817861174418717613723161193121711252377816784495328856321732248384223627859521983617199431851717536886488821266331852238845966767935169372418135643774225377269644475623631447154644461767738465321754742922478485541387315128113286392792756313328775196765939512926313956828874378715246687549181111149177499786178426692441313472693367863497877472952179247121472783126262633996524842681611836721669752397631936537241815383911315853239696698791945946573268545612284288849538896885678157564998832171319964335889413225496566393836953251485175677135962528661317525684232782987265535478525783686823736153829514843912225625548446694621478783165883246319651747513948968166789466947821135889374939389796191768435163855582354347341434553419418673525441534375393841783393216842551991235994865933725971897218553478288375494749114559868652645714774124261389358756323991475455382413314556594813188781983857333186665244481198457651555595874321838713234439233872312926195877276749547639417417255259264691528714424333377269867118391913829659392247263299721241277512836488584442242628232592717711215399533414225598911714442957484698382667259276822836675591253123446768635487889952137529676497664977813735631655417218658148495169291435889375658184282364145752619487565785713547268566667973639595628352158946548744354416192713894881357194442532878622722277732362274641542586155948534499412721196962968342262938979548681695322385445944659489386799128924244813858642791148214852626669234326187622899758128651297134238716328338529818667762451382472538459911683724544954841635291991262132342217543533311695551314175344383787834635175862512312554716272548826116811427927424438829384356959846889458282442566914749463417938487348394598174733777685123646641288556799392865431447379459955436234139459382498356563732488717911519832794897212193138561486682525559118698287921969662223457295817324968379485593145391967976147334475119466495111844365641675174873373553618431569329294954617641649887467472751666778898311988653985355467957124412125959114315753555326627974465191557594115784292438987369926575633393282894618579772413774711599998485991616352677118836134485951224373652792554695562183277155351348181696625295122167286446634171215883195948812219744159651137341428191759736131891362482875752978649896531139983576489651854798837258759474518966736864851587397524569179166998873897591777241928652375831961211626965442343312311673142383941337111268631484581159117237154138335165711511923965568365214755759556227614147846615983498368651113631414934456466788511918964865612365632838522933764483196156511764525438291286871727865377184766145531235316154837414679654244426651745936188726471265245248278534595863119893355844585866388575964796458964794371841462445292739289565152532537394857619516613776254234856564428822334951917441928779734433353619811833344313979848818831686965844754693129172335416225883527531351732712862125653213423195495984258294344828512817749343529585911172735617922468666841343472562212571234284561754731424168834279433365557421597861357649399128384163823853322566227791867419424743729983782723216237676843665785872842647799778241952825863164251157543265541597314716553713295119333516911219234144729168425757382178455596486937128431527178571182521163615921198677824184769614822265639377385163285357442919223966899911564148881367982785696326341426134877929525678168623394193119233282557398476248533386697272829738515672958869898254217786226422199992543242722812688436696635225124451346913343162879628867291988632479917155367658348778963481611649638133626624825482392521646314381429212147822767114855888847431659556711822547561256271183147594747555759289868693474437536914792589625576579139654234916145359297159381784414438337215486539193339772858846725983186653939259411117187568286993764898587433156238325792628293854145157354786456385215155286612544318362127872538138382496195653948336819351739554727125288887321464521511815495595855758567683315442218618415883375817842728993971841967422452419388886749339645867261911948885285582943558877368723746458335964529135556879585576171556463516739716657615491613696971899759777561666242565161713319618693711315174496374888915426532818628459363638547153318956289576838545744133432533663438323376334792396256515556311612446829112533445625811963266894175242222226764517181517752739825373724137367492173514156668417968193571194233411189438298314479228163457323824996667458576248461675837662576173693665912121476748253432265124968739111272684464913634788951786514317285826122544611152381497128367128231538734326714322461439641718416837457874977741637342367953323922556426958355346762718948471734564419721328424846734836893786633576166875852458793528944913492272128697931296536327423524193759239289447265316922311883471916644115185678568792374243764957324624144231457153624148422991272143432987541611233422188388492444282572198343817171795844511828352511443759429835296689413778446212691788732569212319153324185851212568473572487465171656761723461553454517194333363513681963731529264692893282919275935845913681142536493435347961542581446649579128549183561213586143144746543683924733839723176712396364393598821423854211342785187436881682793968319687686574342658655971148161839321285374318149118861283894249811933134299745137188141264443184843142637771373118284961458794815328546924122925299336461185439947627211132325512468998427454875827556533862253824321743496588936383622867575633782564429476663271253224672236334548664628188925927275765197618447157258382773945552739168654924154751631325945271175744691328168675142654729478159244475242666869264628111813241237638691511968121143163382865668374343876492675576241463691448979635649749629871612124512551837926876562779454165686394884391228614297725982225631693985697756861866688473296253239978187455216159445545299891161592923235875974334122797381124253718268412393494986655811149991142415848126771221493531251539995223752388438465726763995491241458983726266645672953682454122912373957126818945755742336222438658994958449482432522428289889492573248632382869844352838128681684326367466392553623182527767144381932314448116228278481536667486787312283823516895829157176313593259734811481116649385653663981622747895355125812399654372517999341245993594535797442912367338366566572491692125557293569587594983431682736125492412271817476162575468496868341761493877398661475587188156162997583661119753282966738367446648471623823965521652536828284347422649316966373366315523471631172324188365639698797517411871234126693729447669864682475397727262993673736924859591545226623835776852489348759157172859782899476423591645575488367878839883343642987974326146151841893717517346947579549182188491751658793298968336655514216593721941852298211372172858253552335747841976891182768732896415769329524765525628241168852815952785736313333186215728118526223926867779234544795865259361388753115944943894423186223446156344185942761965323719489671928149221925514378137436495549559536814557624644668725443414387954347474295714398397676137727592883851747446558519126543451934847514552386459954688837783225444277775889472789573829196654793534843292344763666938241985464986423794595952927522883856349916132393153349345134972511981196454664991652967654262376532116112453766814845679544661451568769729348377114277695865359114593336126432841485235322387623614726141517246259215296796365251492243939968646242943461775859246919143558173458315863423426849823552641121953371369543118856715531366115617997237653741536434631159653475174729849423239855189338173258562929634547854699179123489683431359629681591646925531714336484354765951735358463153792423936263269964224698162282167567142141932175867383372265662455433521326496674197141562622383151312262621522272672553754859375246522564317779331122937375134851237489491963169932629497877278753185998583817257277544899962578131926359592977427911625579423542491455912422347652434278934828737657893467666377495732625372682126889591745593834918729137461361914118383613171493657313895188113927985393362446147765916595517492442674719568574239743193333683648852543394489734122564141712519182194569931223161771121456131136663857576561439426255868713943332642833976141116925723819152692278346229289177547981177723557374983757873249629533181498115898864789246949986214873474329783483466763726816178868971381152684875483184319198171627465552855442762131835628989873347794535498588362864485171957369236764985622164999919318785328123427191923782938377414162171541792427891142528982973438599633845176967345393343351563377129918883665477221132867226431563394248236647647635362562188256539223371247881889143816459471523443281179897264717347711846278264835483256798894336693112624257422369532876121378792849789227249641394564354964239882693121319458951312774919146527625895523458452448565666694293443451494171318219556745584511491986623845318913738189916827363381262887982228244173617639671252249325635193721881733913433983473775452188329193838312517831365817232521814891714941183645954666793166637222115914715355598669815533828346357511812394252871125958694593668967369451289249847619382212757222521348723199158111652175375888521174823577787166531366742947651276316347179878365171241619998955214521657867316314215144129397858661899244423718239225236334286792592483862485723498961283648537556373697566632392686477897262844482675354747728181754496598555872442353321828691924182495497623253479435871238691196114197275835332813751463346131138571433333296427182734247273484377288347234215145512437728193822376275221641651428652838575983232175579665258198565752935728143261845325746424959241433211971854444521714364327653262168199342976839914191328745392738464234545887646365618932234929983649618978154413421492838289227139483238283191369658939974266411152646568673145915661631766996267944344223951441382522171757979832278993414159949891186874634378576648846175478835131459339435524241735874436813565289373759638558881728782572787869767377688315641816128461536527856151454921695878897335923585514567751112444332831531322878424275372659448446916936683281775564569118417691526439121283726419183713174722567168769843761667581418543236223127556193853982478574776888956562236826728373492674421846176456834544247154191113954623413181139547572362663865584113525855767469266366164238786563116665471633545699899616723223479278364321254521792285464544463261722299396917995349718373314175386345794451552785378415144816576672313644937515399928726589391712289841128398888283618454495454399253887383984443767184542212327678367778553573636854574727313999739828831496994371653825256768163421422484293881523818527651257557358562922938478688116127366893748572494874456599187917195625283658443927431321278538355881762316327486713621145879348695668767686334743481177137347144681486142753597498261351353558845624117525427332538271917632122727782431895798789477296461272149841415891739656538315262586663276893882316915644435592331528143865238639766844242239855233733117823117338626923812866147151475411351485835479498335525867957273594442262443424964225598591316647416533999326151268817416963514427461615326392932659318375185486159826741589567967427326175955689249658394532649558325767769881639334438243811365497835716931761621953487178829955472885631359448556861724426985731558221181191239776145194661736995384635775873748159414638189979655179853642468411562393328616868743252926569672437311162757864343846992655544483572353873982747836677277897137937159913657212261723158355512357458253166819483749852686623878116832238826649414683617841115573758467129472194865118698545522532245656454124979192885665337172282316838713338357149247225386294392714334666158525115959177492429333133442939929437318581495913444146879986731658536512458452827771745791299892115912413664891383633611827765256423149595387754792737721123428268558924292142783116398136435374513784261489428256645293518761642814485383865662264288881524322211581199417438642783427145323735529628883881494997926636576211384982619378669717138437587258796122231272367296659384576199257238972792854218991794274786151939257853839641893838165493552318441264484126693999315387992839443666114625584966915595552823869749136815994652486417492263354462311355575449974664772267352985638954441389638397244374364742674514336916497487975354315979643325772491731823954119522164457754887955258622967391758788251262389487125543599496586567491117415982524667335654164481859989464421332532822717156479936566419961122242279359435578789644389291714512546675465829155931535974324848472228632738333866541967519279615872765764615997121683819813677494628646169177847229873319716579375648563816271245573365578452214123828885139842162165166133445426281888682559578562468285125968611729895445227118645711735936199927613439187775133236472374687521399572591931577619441117378468828743618648519898877297257663827126467413755838436191364956456351849732811634516622976257342429322383662912186241758194519868625653272122382652255368883175265679845283773791291895983818168211316537127584148395173687838472347837447192585737264319986362786212766467934627519796132312713625153343358359916815546852182645798576935964919686266641958624837453482553653664293585781883368843456844759229268725848283591362419635335518249526337141681685862848734558757884496523249152357237485953444565134933364829979284678137198862621281784956532343953318181875155497323111965571435323225947265566162124282111366245929984272866245397856588971178412259976235626589791189213632928335529591384826786598384515681733218463571163813986553651864365754933456367397837593155336157868851647989621563386185677944769591213626482186685461285124965412126964319167361154482988885652279382266859851938841879169147693631711443622981966231351635715247244848265357729283475343979477745342384463467185732365554516879652591821825968224713538145481598142895555281751283551228366311631455473345351582744846957537761473833561997112647484534547794719838443959886762453357128316424663416364316226834794871756662772738452339517496515331686835337878661188417723712462658457542554712135221776857458318211195415811163918621257332252124487821528541693522915945684216494165821374973653373834545637384414685717593216482276337916973514825774152664289237728577262497243966877678211249568223591891486761297659813431644482972491613768255961699654715244382988226745311323727141633292953788181988596885361161357887685148878159184695341648377134685926892623916323233811364345174991478317352171922968826797756575754445212511834115422166482131249826978263529959945283982822878483582272918935113585369916716139767843717432821743281858899866887483192383256917455953393232919339844137157775115687456815269763165163648826362911942179878249661765841675182919675577629628517748311615235758855564363288324254927713572992575648494555168428261211821245649355586423156752629884124179638987214775933239883553123277447117494844343334472637776941221947934448226896236238434877621843726918241768963317336916655161952945865582217347324753556716561661417851169168527472817472446916334567136572847285756426231332349817428538263429225613512536245729454743312273756526428461253234422614977142228788662539469244893384331897952126182868961223452633428164845446395493292412594764861127341783787355196143278347753572812397946668485334757992921423654835347438379866825252397748921371329767296148224693591184766374293182988578333529627973731443392476673527567952721923186148295942755611238749997696983654736937872251651922697792627245176982783852158811953451713156931351157946193339163252581255125677899267612942644162492617512138512611611825962284167348227781982474839358523393287543735251517878577662968188969317577714189553815569556918993271595425716912731111497927167965422633624782431946635945534911664894617818244543186288785211165394145671658872511323178975264586562816168871924588185194256968862982945487545616712635233286811429614697389981341864352123315223467378981119663963195479828574411491679341782641253324476839374274333667356787379415333317475966968962154618372467195483115143537235268564412587324982997789569199123274731628225518485226482479374174276291767499677511447561449378311932485864252142399173489151782733227695966516622263582233221911353151669797126911179183286335931972996224272385594318564264843258713672322819636813618853638798551615349282737528288166252592674577446416199267765452154832436591676871699531316298199545286211179114617596833538233525615312223923519511821257643454831774964871455265943127436247253315149732619513136698789143992134461231528343467567774237696318666244994758226176739127955714822521115225681359785951729328653831279428386495227381274267984961652716533744625155147357373786845248997487936822455617189484321945299913966486858741229935935912934395883826982239969795782412718721465154865688786742811164452546582335812353518129534476787134981345163434434474437963441187479877245172197953442112543876428849983588291647731342673685868379975612236433983362968562338581342977823882117672664119338425981545892261923334715168367543564247325492567274896417495281976188867596155358444532122748171772144157696934122561137191224352979311198656757969411568972357932956788184958394574937267616579333429411651697396666695983898894119967114118596332763675957168514793767276379695413578371319529973342335248952171654654837647523664227572176223381595835121812648548922483252366291314341593672387535197321535992484323897722554344889466534738224693932178976636146654389174241768691145583512557311196221581741512517834142413512169474739885774591238282423194597288299285565518528322268264829768853735331625113658832127517616916671732892172594319847456898482582948215759972249358323272676546124988275324546889288364159453794638962175526224134219742993455657693373297358937756681842952142223969694539998248861528476143111343194454318745266468587956372913181253167112884834147184387358443331644788451472292947616532885676494349758272682323466432248885772556289811985616576958678584558443457339887311535692886123296875172446858228151536165221627241411819381739763358416763333919215913871286761682877744229341882511453848163765653946448193184226656151494958132412627825741951481291237865674667154938534889987867961172941948792575142984398466159545731916186626566221531191996287748251444166298574719286724271397657315197888222647138261959131993683416493229483141461237757765874252453359476481672738841928653452866642412827156131538467174482195238913519796413294146531125617315717435337613337411711164972874462965253582675797645397149378818834193437812752561969474626528368534443797819479385524564355279671733397588346667224999124617284365354795185835767322778275311654738533884295155347625836473836465661241545441648668852641168314161679218474227615592732534335285965778219455394436111978814668693611596294658153184324646776746163564815529295573913713574466911281422498118147153396126637929533958545992281884838613737426488659843949156991981781213776467136129381321883294436588664112251483532516699491754189413454576686766713779841536723232132933355314921718124128532756127667531217216249875777741851736743368658577894366415711323465989912638735912579532229352242741883826225268169383829235625567588621133915252299799976156239137811381512837872519587615445133294211226133714324718726227688615193758322495631238914162856412266836838193884494875841885472265246993665272437131648264238386153623461411528668923412474877584154272273985636599465569598914994616485237996186961387611496979372327753922675257942848985949867418341211968379387364227665734763158943661384526629721458995424442397916672869251655466867727223367842757275672957573463641251922817894786132951283923726279353162381214363174399944228267827883673698269776645693137361954354134616948887525443634911165878179239182631144817453116214117284559624363494865146312616478399373425818274988172663284656291796452427858224517483425618262674358558279957624326289632189325288235438666269911668252811785888242284363819174429478336249726395164921514956598731125256319878925662991444643931463495817631127655172312434447896523683685511943181629722993494635849228323815446329197468352651216247294252238128365414417649357672416236979722558276714273211351134786129613486477413423329343171346377924413929865283884729912976941217852357553914131431122984644872491833287251486474955132453191565344513422497728888922352778911323453768589872569832566926695595623179569629931887245474795375481263647663346463313136893437959932544187922621558931378131552346258548851751822269638428427587328913839945947389915421826469332165839227559246257655734726854965245848558669393942871387649429648289972935812218981164962564813171269698166862263547582345216332559825515223788946557425147766318352163488741274493715484244467938487791492112671916353124112731493433994812646341443325663168495663515363865239894158263797753245436622511531979515116363312515632719198684426152299418438367753517688815533779527363513746124157384487332721181449443838315246928667853462745378762972285294992438558227434794871266337147896134698189516985462975168854252633718183759571894938943152263719127618179261313473867526951853314587797318836831811867152152663626654647797939227194585954643695433599917539499417398195113576896168898379218126216577965484336317482719129597142983863748638387778361142179192249512458263864642424221315767697347843532632771293651177162459167116938378229285979283928815215417671294594456574793186257469749932646575419432385638134685211258523153634295845259812772899541129516255412935674153665366782572989195832328526638355765621225921134629125693272845149494819533331178672981695733635746276832223544283791127124681743115814569523496384316177967194485367136195786934135533836981593855144748558724833471158761972941946247874861723115784369666874671936581746898581535257283376435417922963223626936451681368427814331651693698765151171354266953986321187186222313722738851889399634423719623828148623541912516573541824626936831468341816152336878183753545669523347616372658912958426214241381415588969797628848531782923494324431993657116434672571827428263787142828281845535174682642973361326963292271946563734715644447518129933432566558759799617143318117263663776544244492478525817239323719137752761813567859649531922441281413162668898713476624882589983882231937911557379143269437933997493395233674583359966695646571437789968334172798886373762189327645316242623946168197567171335138563449478447691395545316335881198577528647636717913248169879866775716597164326856253136938521138743219841548232191673812111335534695943649729843514848127136558698895436464327934212866197373117125468769733496553889378315289124829136811953266352252773225119684954761736723946516765849221898316876448196146723951731446479458623487855229191156893881674877414532714527616236112813288872673951514217399335973789395837797557236384616874835376633725651283297545252578685756395121575488217448748224718446131136866736281931191641189841731233622974577876386833734915738724379795924513568332266413739872718861544889852916888526259161526616735468813937311485834952871354185689171578897149864513244697182637287945581111144944842264214861724165159188968272266867714837418752761677898935549955786889312412179792227616249643124929969661125484217851332334398881198112865769924273866155292853519317235928161926298659575155182444768844649424613316894257565612881243457538633599483698692154612898882269592546225215828837192268148115452457974814993573378696122384176849347967671952724321678584961444693819116268195234776434748848984262663357178493232858416228225615912119258324217441951453468144625942955823858351462671618141518417429826992435859742321315553312193256187926355737666818176984454835233968523938957776517896934437676639126144389662211455458691833849138319924837642625163625789583683986862525278297475297995328576498951318131792118446547964858135376684345821916625372766487756667148434173948681534134352366596311812486332272117799514114743816379647896547125793441296428587178563144547846571491757681396329122598255244185259415634993543769188185583797991757934549914199128154894387253722519862249176157539591927636481228469789131156879474946325622661458951531222884131473648421938198456455867576431186417838456177597435283159182742127212716433894698672935944686498181227293378786264951218521172389671591939597553317333931767536334353686962467889514345118223623135639572647313756737377425612198768598397861852436531577319452437179738312982473961713137632893559367447337965562896592173123375153684648169754478615554924259385451497299429277726837762159839385172529833392991381496942234267795222735443113374299841282689914158398489856497558342831444743356391273944541151812857372878786462873518148841141516664413477993278463665248771683179191542952783656482524555789269525965272346541413886482636687733668118469428382366167554539469319518244959418224146448717377275699479972533395332959928443235123793853417616154562661636696756287925874245273839566813423875121822115958687692241574142199582625888846832244372359951979218426949487299245411999823238719368928242273152563533243639948754251813128475345922597949967663387328729475771672643418266724239698822833759699242757846536943644786689843178519766625281414294793693165291328121561961822521139716185457839438154844834421373287484572621986544349395913346284641229911193446921444341641579272855377281874145836917237823529663495183842654318363367695633365761519759142635443534562356563222699935568542551349551886182558217331945488979731338676284299838416142463292424989778994674723596914812874463746988832179877587275721928515311579529836617429678453754146844428393126216142985762119266197186472257361112691527696581696142985224253119377126443293869541275128231869641368295552962369449542676914564335277919311788458647737273913575384258471225543552248993673345174753698192569426113337162197717564198929592311454785255298925565342814619831655186428156929799966347249932477385417282992263197942276214417194531943874847633479863184237424869819123115381985543824599648618776165735696164287217555695426577513474664466659351241456155532434193368879194118419218128543685399917967984918173779127274495995647274181417146531315427492629272711371515371436886498276689444963479458127784897753199525627981751521593829678113924598391513118324278489427713981934972212982375339887259593438535963853751826242771143633544362852444294339634715551123886754198267393283395982258794467577731632679321439731226822657442465274731635684533127529658524456943479813114681587464463778485411347962889734297447445719582779757218578776272992757915156819178279575772327254452974129381498483414883513785446174338839532615998414854337182313239174527292957716566981844683446318333817343897861894238163777768893274813299889113314683348362811334511487325176136258638426418176748287384937137454988218998229345772823263331936823652145667357923957255899142873586124419811617226862441473725128371995822211167515198756357333747587176616262693899566945852485242934734543291482651937568126967421921653857956342387757347279595815784155744918564113126852183532467993443731178979827132663653216576717169191351393433759326775123351739829781751411813936575228458416122371461135152121395998173145191486819484494378436613115433721991264193969143317779538726388952874451553431181579356458777188968285523952362936247643964494286611496582288624257844824938137614333142454316493712311414945664571771674429724317813889321628461929541839537154623399262778918479424697411278717283141485836483389524933529125511717687354197561632319978831216767359115571274673893113456259374852827178958625396698691163854762563975548229691232229197347983229495374266231764153756462864348159869133993481557329452528278258917923148212217231176545548475355153933772873585663493632946866953285716193653227967513869233423949887976234168521924364889656551913649245696973584325814937836449997336393733393216844412112719831459322922652745916759746671318238642843762842614674717537218785152422429321257563199224569143842839335737277125766424568321388499432517417387146626113184546317211594342166437613714315752812197356257435743639378572463887917577958665139588673293995543214463998369766486237975584633492822376143211527381795436272468321777285664397666924243291636945318912261383676541465316721693831198387483635866869797132397877487268814782176626239138852168988126942949631126221433722943791379521311938613163678967391284923475551351253572821465228754474637123589612265232719794332988616991446634164645672665521495241165973235272214163735517653468432992959996786453456384789158693358291196353753635125887647825957815447821384124968768398815789315515273987762824593813135366412454593668571475945664292647188258589673465239549734938912942978741636521912593286626893842752962499428242219673562851559581691389489844414645257893184911374268891316429755426858726954572385359254962718396924414439961256232277633221613925172723458254866841973326638354366137431636842621411176528515594276761159433597633933131316984567287167964791494819318427627354717326562252348236576274418447929142888597245724219582884899817867465555482728356653198183178658397416392698543863941313273381175716856214971222492113176274975887423894999437941924626633384616343482731246277655892133321582581564555179734234162867331352939537647636525728525951887141365361889556442171654725215962558855998672824656733541164952733115445564239682731427697799695194249174729587222663486394963446798477278365249655494214394682735626187985262937249374327731423752225271814488879614623333115177599446633691673984538622148632249467723615928251383657415851313123612848572242234126592232226831163456411787321822869147167139254463972293536215721957531677198798798523658497279996213715964933611757779389463399749713479264291145332812397135783529319717945485911268335666231995881815672369739933487146471128316962153971193879166555295652656287895337396821819339439273548674819935299234981123231432719761894661151586476887892281554427758897729948685751734521843738114548966519582445183131481711412661845256718993164785793518566914617233985681231316668175663167679738234427447381644424875641143743381254386125435281225784551655177374546757885126953351158482217577354472577722248559566975362999783777451675935689873755988149446571812986688716578423489856631973461886999213991158773125682955964238347344263256325628156824372565521871317638913638663563419422282847354967169477361631667345411826282152341373469687671275995818649174396574874367334885722831273662366659251299951443682492549267759882643681711733934189252358694975422241373152456857651633764314177314823634559388215151771332382683823366725184366744125926844313924895111243187385567274466987642263849596478719485568334153781752518159573596658424592812397816142558645336138196622214594475545882141247697161934262873936131757265551417777486652186885726153937387932816714997341673816512729738692769252812724283289744578847216383464212594847543818128611125235219392275877176963527945911794285737856684117431717446868193128863688585382372891928846281459217221147262965822288223222396229526737428436354875711689661888949682184739836553894235525163887789233369436716532544744755828224969979295949618893333834955955824362182853716929412848354984685778985192352665529152769658466224924381583885236167533421243482115978677688786661231528362788217265837728348557128295825147948362513141153531379956476148315538889471899114129143258311237984638476172426881713677514289751862391492978776727753268786778941418894637551211998594951895522394631818592572839712668311888931789476134273652163127326224344243145446698218423979214463646364297113643886319294637153952221511234966199725168395329736322946756648288215245227258199681432841964465771278644679487121789824817545182865655845676833331761124866316725743243262596271579653413411589859872142919672682144237268816367725358273186999198498823358166459429736392723772878914572924911114783337461371883476932292593296261665252347798953727675784927329829411211744694937953968787899127434557295918631295314387351889291378439342993242373633927738331113522619554982898341467461624472437444862729389368211699624932281217813295128749112572441788355521196487745813236111926261387256672741511478159413431567122912156557452154726769228841681221154241615955465142118538566789462379822196231331332459588421719222351586626153967286338535821572183336246521149584843287698254544316782784815956119144562334515313899199511236392258712171955267637822229147916914128851446856173118796216311772758481125484992418355846324711618698632317477214133459939727539325896429913851124342789915418155157611489555178464822738128375891888811751344425213447712797844231851866498624344225138171377912996828269484223552328396765271495618347842139859754934496392525443914683758515371447451493483737231275943911649279877938134284851856858331858443586913632916178115934882157528824362379822672647963587936317536467234745655913338111249668811762837368685764233988262761294312731397657147212717254789549278498829978643466153429191765116837277162141441212364254391677848432798827674648453856222126457562819716889394252769232527472281254118753393798667771828725598765957796823155913168673235542883889871781222853695623572565232569334275272386678788145889518938866522371489621696655433791167967294745123339771897317352228113233338532236967118328853813785944922877125733443184532966632854633772915691362792833118979925172527198773498132699213936932526538283731146918327992349196684841988323624758665594823193621283853184733485361359267196895317488181274552564143378726246483667575426351547543149479648462498662814828475138116412336825917476171598357648545722224331174351463788357296158224333464779265158159269262832959688355569551655364514747199364334998747197398782621786368241477915677676887512599974685137756215911557455619482789458254724233116574179712128543686737375519754442467286585533774731734265939248936587177551687841427538712527835592139189151885843867985518665966686633754648263481882264824594998243874642467145313579872567422698971375655365527295656314631249212672875229321686136586637376835477414977461417196917365278666999839798168335314828387363839297941869183542693493939299561912117293352614783462351826528189249711828535773685898917958313455753432582431917187873543845247491636328724185741343584511441727432334451824862652837517569739556119762469489471464822324792243897413322879775122871445292364626735257564662611859427372864223353584586283432658998896226716255694689541827877413591923735631733874867822448618547759731211214326344672732141467725129314837656135664386681696522582228411824694138817994283497822631879685665787117651652276394579554174796583115587265262394644143353662637837467879838231246471336884388383533412611356882949314431917576174786337926348325711838868721479922164248324262842584754224177335772621516456425361113732819683469768621163111543842927487916168242324423267113731812616193363525842565763164338352483916424773462286821673626276575462992515818233342722826187834153237526159165656476552533558354657958828563431639531765627375992176278532781743644861477535654469756321354355726127869342798468843842651418835929126668728281147832572428549773242768882585577928297269319225187942643433158416771293257449346946725171159714469296819161951949336337117152599441524247952741843966178818281649819976415485579682698737839811218679312575943295623617484568698186855953371779784243275836653649594644932735786122751441196639379189318674858741543963595131876472321421754191549373598291263116488178858538999396459917252214666151424781377426215773263477382578323169275648987852826721173661682273668453129442937917745629273264251782384377448835189232714564352841955515881334313541444289269249311222583921594819198921576123384154988375961351466491333228651955529884114255665485923939812936415277661842363488762239111945633852488169112372256642126871125735248639999935383829548482787992887274578113164326683513148411626647693396799156393826316722281164728828998987636587231284467173627495836448944626655311942975246299481337988675898215437187641552537415261264281776285421781455146264423366227422872395417756691684289469944863654763455535646367278411431326171954479153327364534985375941673668969474282253113842858124386414961147786549346952552365342349618954137556577742964552667257826764969288329485847559411856633621171359493558557843953695342948131126315592189228269638813795432987256963833874717462977163578327739883115398965976924659873399991159191458517852826415929666518986269738571979867699889173168214374933877361313963274521257421898352716152229957628847326764554746453968855233977629624692127632137219569492898451631326235668515446538961263368556734143553412462677356948917137547471455597474626748221383658851377779243275793531529619618923367471713227752735382118993812234572444836423724365743384118512681388731647738185676811949434472876712375823924524849798911763177586126851492486113373641392917177577152727843482932311548134136299357379926398434154725582471177449563185729929389716333916833685144693187354957438522465781628471614857761647429519499929247272775288769386471219832717227927258856464649496141668854653916637171738781286672497468584386539654923763661266478845568259148472937543276296483247144548571319898263625914845276423796959618134933332429385121125197766615335344295192631131229515563116718463772753696112372711959116125587737796738936535835392537182234117671934624963812469634599838131189521822594841358687322372981164452326237957648737184179495811252465378526339497799483214243418129117862475636481227478852359111387646636441553632536969429734642751344291434724164111242147821635167761658866745522319368389172841455229671445265281448786541885774888645247627148416695432621669442477693875348773691851847629784549798894718432814972334873431252473728196134555576789612841797597427519841124482163516562833926721758499349227723543189152745565448898543662667392911642853581722416384361417791823917139574626444443658948193916899824114995982122791532537438734238447841541124664415893869168191613334294983854936637243979774862116925797452648156375386585971677235859555441972839353962753711262659592745589467941114492218756683216541858766875855637211821538811155628742725533498648532844861754779156262333544349614311352628653642529883217527125625312638317222187228895834558663765423564277376397543639666366798592814822666443858799366226123858846435937138547781478658878329844885441317513458872317554228949342787293132779948781985719784433724363397134158989954889547299165884318276144635445887845853856747214716518538754523996357442825923632174443471755725117697821488221834792435635825745412141615853358159344546341868228751157678743886232442145234328731381117672244153855557523853263128989577578855155293154122593833144973873696352724861896425348332959653459199152213256261895837463673738293416711254141782342726325318456348926514312333326877559443147269925343512528989923986412656254996341689659722618783755615498336453984836678999646669152175594571333543746133725774919127583172287682385465763253334411338541923118993277419934154497788399378163245412773222814121744296333843153748374385754766217933679468349791168178884643582371928644931438416225772187484726226717365882968359343952493618712864371413939964635563157263915945291879521181118399448951194847928231587972536171251495977697311881937348373713466527372611933858467974823584163397549496198443112249671881347546791418763614278331837398278751168838638583112998556947212955433493153832771768318151415413411131573761171618372961593219343344967332248263149529388855499474412699245543381539794562873719386334475838957623934343664659746774451838111369286638916818328188157555619274937614779561479624997916731828745352865468493324185777572258853867735617842245864779115441236443195254383168322163591988232843491715653212923823413532357952125395625951513573752792265787196397767969611426858839353115234146364732197948357938433844338629644143897377368351454429227382991979133427896856399366151713853631736735594312562125171215819425563779874763462526818752267245346645747333239196278448624492271558886736693627687575141941224577193661898635525764328227252276777939598762778625655351632946599313297687445617653874625928489414477352899659189945253476188892849269621524679188267393647837144848661858798567779938458332831932154756943274455972232294184473821413223538611865911454655119971784352843797673463385911171948869135317175381362322418746531597486396521173183586835129424864697934114933158496581225823993681379191835228552185572692988371726175235773944567429297778824497121585233214458934831269868897166249749646447524674968874232764361163448982932981522146588718549964988446321472179351531649276349439543119873423545789339714379245122414323588971539561349371982397829277263219978599436171349125814754251549244849455717883953349181316272535639227738373934948232715695166266311392396729341577529627715633548368962134223734853737921192168412485194427646894719157554349484283242983173578158145711948276838529743154265527961286825686864647981667999931935417185225546374974458649157914879833271921188132383114674299889115813436622771227856375134449723891782719532163147295132267529998764415712253576942485275352217537689439512542161649336536271926568326232644463757872994239111537196352211414183355121479192221391423121587115612671629917546283412884288477121647375376692787683217294419241325745393929149332819691292583117887112926284283729733747324755363589273646727742192227535527487384974732665687168337253417941133374846796914785537681577267675435721951944692852326291792489287634885985667263944387355495676563917988563416677235834336521556124194752325573438789246915398342316666239264946629919622555122296566487134851739784256381211628696714168444829782319777476449623687158187323117884185422362546728686249837263313227864547351874967888284132792329647436247473296576917667383727124831277363616271323725742193197867828335512187853246311631145193912358853332816186468676141786396891221692989768898711611151625263545673548987789623616481551728914644232395742115484519651863561922159345123922733377148958732483861296558185866295566291855189198526969727452443591345789329512419686461385936791694516188235839424163158757255538231756647491319984583616924547941951838885691141379375733715791248465279383859253326682663163515568464584443848825769345269941781535215435957246374685656552352778647864228486496434814526843537178437454896361887522242719454596439672943844631514731447351346111919234357665395254157563582619482867175991991466163339345194861857625363397261115223435352596221422563841389289753781139135632579225715134742253226725297875227495758373122428488921312911725778515672224249475251645845388851352554396327623357155455733632712542632361567938393956935875284193197195541843798288342271631257621439323234843497439151448696971413988211936648739734863649591668534863777393278541651913486629498282963944151664325929739186398372391654553284675113181384736453547722234732556666587769399711945535173963514711127644161333277826646436639351193218415499499822924841144942291535933631364763428455722672811265498477474814792532643631126942474287978834566931213483542111597834524645127829749939324122711914597627177526221942961614565495462359261817545138953774224879325738893772751565476786237756964443313214419354677751416614897694668547529268217948486778383343622162542725933199662944262163215961462729787955843642552272117937755395873642731429617484235762312496985312936199755156187853631289132212431394121421118732292147396517335729263925547194731446419375352147774469821721427844958742368646187135417118562585869169545619119147936357134187691131155669979338525757199571761499479779972346865529145769993174478176495653756656724252638473219344719635562798541258481318397268584448572224218161491631446437331592316231124951436179111755324833644781627943424811129661578866227847142927948191634363324331174977224449887865532179419152698285477265233545394793744532119829436737797924391546134429835729919777327958675649575119437157358614261547316221333624543287727844597963231866994317912775111453597343744271958876529332541462577426697753562961341298651618546373229812468212383321258368147731768586269825766443442826863852447598955881213113277132928968963129754474623684534181463826414738216829168915212197518249224445249198429272495626576943411458584568949386794818137554214711773636233838962133564713298353785187414685388812811255732959822142734561584988593654861576242218648863742442846648142366632339671771257721878872281326132921221998561337425636347249718139371832746759147964557226626623725488321879327789998717713752629371179445735685498641326824343278496728355538452278523411631387123284767445281519263441782477412861489519326123811554374385197413286452253358299666835913427967398515822156883951875929588141295864859561118522348711877683945385526767115368126431535317818376515936645923334384831233515711774694231363858435983766785124984125846391511354813742495191681378613117625577853127482143793949287191176519218662987143371368951443195242594355117781321753235992628694869196493833421435584191314434399518592242237859987946968998458332558538265245954593648749751146725455661393941882533363283499766195336141621619418524655885362325652766587492871345791411338597136573665438646283724676125495965434276548613852349926493447346731295526491291152537485614373245215438666613715665417623665817279597161737583852829141934543368165597973341242865354137978427326728442268191477753193374373977989917259117134296657455692651262485457213927845365279799989897895397759318532153294635749146924133291679198717519234582765727463529487163695163959287474975846567712269536491152619353237288111353125816611719768448729252484249743354555975963157426753791878813663153875842352534477241718211857634281943534764423727122798159337445858214172124811748324262542781195344723569752822298988785926361587987536485567462119287792447384141173388657442839854328549524835623412651217875453886696138769585546667416932396493399582934828222391513969756225381974297321319657114673472325113969189417548431112134174718525324371841235238439264139822782941863891167648891948443929491232521763676375848789156311277218927872462671956192313522126565316397223941321225487174985276457537624744239664693224921357188176951189769271153237162253582289228878825937361115556839727495556243474851252645751884168261745777314331681745341214181945895435498239958281183286646462441428413565482718954444775943633711122595519255168632619675846232635115851434174658829513272393143658989596769372444796644569432538596668935189393619643746276581443785937154698913318222884849456363215876885878247455751488622341567371545237783792175511817351181336771414551599752696454292198692941616478292536421774438437179391741426916375429154121274598218279169148748232528545522884983136715268158735283265462833328519988221252259853247378971466555133433113199713412469391676113615833676121379742383715353542998266254644811972696423735756116421752864774392981949568659321546569338654737169934853786486797143144658436189626731258741641131641929966819782868659333273612399424166788746113734594962395421243794438462774747423547379913493358868476225186535541274431819225733629691765585534524275789183633223922925784229985211757334126765777132233515572189332686442723253849127756348958748453912112961822399552417688663783978628476524953551117298276854897128339157332477132792399873879478795147213424935113776945273967287289654751832547898486412232671572655249354774963683688669937316574677514187361682413549956313416397171943725447237464481239371489789834657564127311348136897177183736685516941942784729191481927262477441593872839124255361788472136586755167456592547894595257395443227124714479135562886273725213615142633235565865433469393584971144555821478389582347281484952996543719274211895148791483926849199532821657779383446349519138536171659113358337291726463242271636731442414931817698131548342872119822183491934848382955189592827848421895653926725886386413486746691129555678183148295885413163434591825493219764171387172555147966898874263253355473115867496916894272526616341461525168487791217335926956658232915257214327379487186856157155519132795587452764918597151839687993685855413355949918139899449835842129381612851687636168458348843366235858116416556612422819967755611719261879816463675375593249591482174265714963173131632512794839746782753546578491769566274888699543297114247261628562172429192738722764284421981719332382224482282479698229891211411524825339987774395542526444464288937832663951723475714992657653826814719477218433849914448435199684744317799353362132963583496822471687538148857189542912957435849165672959639659521333972551258432855848783429952371265723864523844666882282554891512393125616921278133691588742417717756168417127883847365716241123743628891953557686649385417466757925429328111487886786889688789179745995447994234986444416318552656312887151942385631991419612191829553127117564436543321467357187786275969212252693159414297833137648598451329425672963365375532886162835611339748722546396388891424722311176379228839284626562944152284865329534468833461471555373449279714137468765696485297633325392322637676864492216514173174273814372165857816554628275144124583188682145141417244349178528228763656842494951159282338338787912292256423725437647445257689151161129275343485195424214486817325413441992383516392824231314383754157814133131335713347847515983348174986536694357796731226425689215912691816464349134381726524694818991373956895328541956815382395853811778151174265612384754149536442138327935517458189291764439891194388753473454652547119292517165116373188731473454868153941325341475521519141724159614913119534392125349447232721434132517265963353527449255294871259643241864481182867424563447215343195997573335781133852958962663445287525775113327518763497288772398252164437623823397417826578484467115718228471549816418378389477237882824522237835866126386115297872947455413745535321556237725448686736936728368819319164573258385182511627318526858211821641971136648393142891363394784957883586911138291417738393177649876644914321934588544748642352341736545886696922687221213751545598322797193932495956848684755727313145652673155887392574737862222462245331998334587133354687776723928818275288822777926319427294213794383857226971533337648194368854578323176294219974975395833579472618657553651593799629428559954179946685326449646672487242946878793697137141496291515731356963232932169285649482145881475241349848577923113398867495231438697795556359226614356117926927323599764615368516549293284899788282134512414495453194558254931125297638324134478694149235448592441728328898983953498412166759979756672657639614437992432157294273218158357519268178977553128911227226965159128752282561391556197258394591574688155933136782919838581664968136569153676653465745934577561157546815226119872635637674326911815591914652664145416419711237983765941294572927997591517249355315255877985381122753846861947592572512553291491357295851261962763488125374496136867577434423219888582135168825146884191711664573224475273853967217997718393184734113929925795812759964445889589873344476437373411988733594682296229475648322976625567243979895863223134544236187287874876255475542513868327361441521724538746927574279733125825319187784332789881799137481222562931839144222183512782399885456624941912371389129562177125228849258185882816441839931183996473796449474311736572745456634272647532417166167265291272232171328274754487141672934754139665797552672483188177397674459428269655912879811455535662436272412119856157343924684595541248474371818389283536792596267431864494685586335532214133539466617163993251221948495691137264921141982397626415983381147285792122137749337611735797548817957581988146815349351556781648339877388619388582872979832463844831286379494817517343845571588327322888297764262638851345542732612173562793662723812254824851774875329487843352422564283739921393433395192464114785151687544482665766586875373242191754529689427912352756723877527992452133235617499877341517165873226243113566921552231734867873495367892884315639368966254333437277538363345975269141251919192239592869492889261653826769659716596615882158321237899746334644241543894391461631919341873636465171189539763383853665838643762669657953288682754988674494597724447366892578275273986617967132876139716525352493595125161755413188174972468645687724236799599664236547239914891117772299816762693964534341226723724341434341118218232462846643153192261866371834867151975656838241914221771849198866131344266663436962471518915133912513568514279934574165234252372683942587731426716137195839456622193347249521836617399281958436581329119457458862423463412126521464371268257451967664913517655767176266418326237796646772236916223862866251299734792764763129982334127919463439732238785364825367246394587236579413445379372971288789476583579382951614169118628361221637274796553546548626775634354457639981934721281628136142372969499364299184755629617812719983252119871158815741968532666767227478634688794315359737629483451812848624645291529862754541334472213197443311977728266726153358512645617937391482885138138465237636794841761199375297573656433826394596446451569723168335516352382682916384764261823679742817819177492969388423981199992555772919497657445434541368853167197114216157135227343464797194925514329348384775322462391811525953683889989586657223166115852599996411498299352888423623813553229279436329541163472482729653914827486149497997271953529291962129932555859844472134292423264389231243441966637541373962421223845233386372174211144927495653686469415925542362197297115535282523633541471244186911259976199171465356587127933958859682733287711652123592625958185962323762237133617595947328537693471277512925148311322125732484879967193474591548825967735386824929961188878316926275436115557792374898418555544925934957323953733773137636119133983998424346618449167786467347992789472725593167367362479434377571975149899433484379714781647957439424155846615727116479227896135112523331859797322383573611656735949638481814735543561282213425317435545666191977776778814793751999118939733949368514874553198396226228991766297459652561629515615194193311689225591944869727829595459779452643567885892489351682115279357222333263511197211286155384695841623215261328445714618611267453176117692383641584345566762915332369361695865531733272965675227914462824996638774161286795838681511653492694314416727138943216546627545742797267783976967297483446884723963874522343132351861951899168283386648442326688456322451542865614649782872281179568556122834851467371617351154984523679464148477376182711193865241347349825297533863635119736864748135438115449731325351756384951318215338597358572655525681151266357486887884229445661654619136174348965414361263277186381828465816149555887929179131158364776186922153795766755943952471918466994361858883532314179492226184413387517947123384487255318581378359548563425786594121941124437431213619242722298882466168299561539243562232744123334134881241937223633111123558913618883368234156793422924519225211335163352472461159525641737252346288513482526915422372429655636522973716731137542248121258151618974834523572544335789323268647117166546456224713663886916559562763924519758348971794969366538658197159988392451323672294145355334263696231154365232481641713953679164685555582245866716499114155647441562323359418216588223237819192589666193223944485278871125685834875351119421865886136987226236646525831445621523518764379454413872446555954219322112234611551669313678487458189494732848953341243688189251967571932699233721432474254199337493839851421231494432432877824367531995657217436382476678163713327635692124614143342149694911834913728562814789861739462481761664337534639535799145881334795247215654822362219163853646758373996298895445922477447171619253387763465624451374173442295451677745697445767256147248161785562493563274392441352618381948344733388565511797824662861329172536618894994689649517952217439494574829628819776369645294136643172146799451276664528468965968787793192574634835385339376924933512986296968931262392564492575345137573957527217513946858695375179989198852713799129274361594975468447336362634742992433654256914471717131431391567577756865714499651322463782537374976241152582144536678334978692587217629754331968616152886967453831151217343442339452645948475547776183317786751981263136928652251733321139472753993499794353356519892395783864
56519991959699748563959849692483737789459712795288995849869765567851437749588567197781127496726443433787392552416151275476132657755674691597663346366186219628813998991541466513171856531534998975375729485265841958753846865156584536654692243164473981774147189225219898121234869766678869927958582518927791782664486785685988585293654876187123544988274838789625637975715877862456766242735878798452222726946841168738234896263874142329739758563328833194892142577613519941142855957456658753657974927644867538973993827835593871916426754891855476759232659741635493958839717242118526345393562564643875734288819528376661394323856922692983285757437242655576863356677817713765773875111447258568293539114534838825264244929288996428342957369419282146478262114965851558756814958196598238747225836662996283313842591592769558816751939522621414698911555369974993967581862158311649422734649592897288648583695766631463437417274784712759474168426695465996587595562379336589731668414757825717465942945979946183217422268481399387741963976329389463828876375156936264569575269535597885348598599212543596362821511932942581575767976765871952529292926618377492262718286759312825976415234727351997548765213379121283422588779496121842596871788755878865535927195981533152346131566647192475761564531298684679366894576429297977158452363742662211864484686635456823729983669767875146831223393861929876499176497553638727976115646729248435858512512464851312733771993392725192271738267868548643222682353213948195368338855939991445955843947455651873826319192529781559761427967378833585291652869282297572288733445937421647198431154649696958626531752591997489469484795278234157917628531194637943111949987387254997374668758684751438957719857278875232361431159474827789831457876761372866698826195588883885314275686645798516939819328484289624456139928688379573449475335555671941622468717684177256668146582479527635993158117655533637582795616121958583895298194388238348584216265118841798953375752295916459279888593636989985266857835137753376842234159843263982261263794812212827333451761899464213136376184696926393576852299596458984583751792182835599685381771523446881526562238569621165361974198133381686389737673324391819692868567888368358388472171699159155473442976378745295688724581557549937421723484678169465214956637652212485547758718932247819438393286142499869933566216345976331589195717669391393381383822862421947842573878139871526962772777242612952596481248615367458598113555364144769446391341598456887483782552484318158325351455179182849851945224263129439444129715527987332591931922929747814879273874399323848262986777789743986788928317634687653195977797528269612242448649359961764944864626484998642411451688763481315191625377817678655894993219124815568635414781367335829793966822912721664547499499996657794856467194431282192393683448993576685287623485698334345441971799392349739359757574593675361239199399178494291345993745443438758867897791341525867238299659947236336714266363294182895528388939413513852642963141838875499331569762999511174139538947587319368286846657453433672735652677324986119269162166389989812578748229631733195584719564851766768943232428985199256887764644863634476775552872645135377583355426157515136829888841951937654752583994771877325424461452775728946723989832579221158178248755498436539181683189693511969755387327557913415711798179163865871394449739992324871579557981972758479414741613746382239319968682465277599259251721495668427698799841669295675451972114126786357161788286548133763796666944611522676731479435919656584457958619477279134837686989779156989392993622891824586432335168824212663511842622897345871354719869772984875379848434794543396254953781128625623691138431341871119298745259514584951968912775745459259426112937291263814427791584848539195649793472495285523478845165354383412515656947989363665448363168242615188584479457442367952817896158673855571455259485782551272248963377623544775513458962331828199531757832984253341628737917183766935271719931621797588792443975139831328545798754969894644617485461774237336671841415941875673995455577446582522765184744779651897757158668329796661339193621675254917373687741622471625244756641345913335868683258746193759664193879834143766869619554799226561716824936145492827585173933544439958539685765318338768779174556881639765869417489419889845261715948384436842198345617474345416744825529588658431454923538198968954821115875469553494986543431712247978567279657757379935843763455963262634574724337485567447598411115314958442628267162331343384738235359773584369631924194954453529396197788387686376686827975839893965256493796856874986977191857797939623539338137775483831528296522217828137615899721486923376767239182857854214183158221671145193265432328488767536776849598231362556815389451999699117719762472984763536327396586537466592931929779915442994487642164298849932474889976878318669537313993964433884827759621295562978292563485361445578183696796337895953358747473125634257223521497974291686336793456916935351274247354357272318196311228775111776631174577761485624694946314186695824466568821524343113398841445889161947855259179643797246635374965267833725553666681798657226879147266921785193548978229754113245272629779288225989927398626295596951997641614773112524865713775385147381614781427936869868941368693781175992612327148433758238465538596175564582774258625363549212421374326465289738373653524256993675263625833318547318181398752646661664171195623695173887466581219928622365394338391124518151439477257118249931243659261986115167483889947854476992592819773434441464747472969729741257244283124932193243664339567955491371695419139181317713448572561312588378673457777769931262554411972138316267294186614159214191242562935996268452176721695164937917634637969835697662897721872685458986151652588226311694592385383625345357849946726648787653986763398983481388234799491213124855699952522225887528876552279777288479383848984965848743468879119718371716922157412787736545776447979956146658297524479556399688949898489541277178492615981388883277633432721345974126526493584317448724223374796825619475443563479893862672294888274359188259444922139933733551821453139148841955136227917287945373871442488444652545289592127436123743267777834894542611244818899592651168996514796763371819969352582282247354964978957279621835576861576115949823412434848549253959318443754519385584297288327353696526174665623947982615543665437376236869868546226642737568368965281712146224376655979674417729173318748177883431218648882974383196415176494527911285989776562298574242433396357225982745193361288877613689821111171135773647936691582359179352497625473413574161989958565283267996423764673566186121685239615159457345474794885424551147695644938165157658187631574853955955546938447444669784361483148114473558694731574845293275569296769122131346838997877953171297378354229681292836596145725934256441339875658139799354731546582125658473517747842348387267446574748779667554238821131498573351663133913129268295771666516869415451357558786164794441437676249539117134647494998469677799124365868798419624796921726522996223361817921946298258295524518984328669175833989331396397654774617331143121791334223569625442985965166585456979118687696635413772443519877892158534922786134595115199482679875537968584487542287956742918699694473724115416382775926252275417921176764437154917296384254878794446795411213291336758792638971742459676125247398197692553149573616592324963687914922298987388345891447435975834569619573859953438386846853718314933515373785968871742392142834567876368359987567948136156535533842952957631431428396193923458925466816276872785333265432136987319925611145686412847946854246268665931617111841878242492639234232519547438474488573613761329677736315242569563761623299267367341341579389349121988557524176751384485323986478485585867529596464249732839868121375576858433395772673995664265964617666576392197269568879563395333537315394524219156862712234713985626827384617465876397386441147489219623954766916885947658639582161428174156997865748968843826593684722115736989111346385456723873134479674965477877694938237865297746461423865434687558386517779699356439954726479151267669796263458573449943686812594837639932555344693372825755591152583939565419134946256921714342489962183534444192854955798538929468553935964878989548179925684338149976297435339826248427554212248179423244992856414718899339616951416399174792883987917214417153194175246298879657611244911562625286598386163834484538359196846834699937197764257449351715782339538922411339177175499759763972874763164422275351483251141948236259646556584322767759692459771155165882255964222762646839272143162558339812194155316217414844429836955858259344625743953296895387895536299733325643781495777678989132856135667616494489376826189144596117316975687163867643373861998934837867537663739942114451956774741713741165588365198266685755431598692218522122639848437878928584794364635344617283184681948134392869479562889254954684952324819737373842949987777479577354831871265287426422795858448213357576596662428523347335456143861872744616674517356659466356979579928355499879411674562123653258445863996526626653367437567823778679817957399573458661941633736673683589918323287257376368151673199478471965412896512921911691687876475829273314875234648926571614589721242152798487778894392972293371977454161517328221135849933113265122725516159936821942479512833543576294448789783359899559869565776858921275138219354513487176413685994457529931195958845777231772237953665667777954971957972277582953676694184648993981588387792682687422219379563112699318787863786459144357158597623416589222428487711283576666799999757621423974698648856231529736171543791831995713179947629518976957838251379421153936694861732998573586642787316753251767347496457365161391939861885255894245325917383592563443836166787142324371275497862242399238818444663476548136974521768564848628527933255985984859472289492587825446451975418649791748856232878898648751674773685434174261257258685353291593928214237868159447963711735897624698456132483895669421298883411924645798395714765163437433365837494988111882345445972825849628787242543147163931868354868327922846656111472428981647587927139293789453946551536816752383813218895592713877768971653355758336498767281768711996285458124174477626485598929954796241923334724975976278912658393188483652726541975863544923888136125296789826191168786959165793855113988334285393247891452429861225966236867222472513568581298226914213813564554885755745695385891288726185182681392276383788589431263761214939314667869871557178259834319614221766292283366769825684445958477456465247671614598449478663267399674998119551759167324398242621251881465291678247271482522741961714213564448211452527894447342779849362929362179683622373825696264742918594577258951346171817537831476573651271784995626958496255178729968158793978461779187138748546555112666331987967952238692797292146476429416865453945581324156537814553339262376972387142526148526787757624635487381735849855853974573335121184974711628272282446181174462282254362629716374947528717353534788441613952119411248927442152456724868665932451673493181982574769951864146379542947452332818179217257793737715782681556653453115313785631154813614977982992728845115962721736263999519979688943118638666735945732693939285933852347552841719523436916347237977663598381464347215391378653865811646219233976185421289767677783325589286723241359546551186914755347945825259293646966538743917457143871276722848813435547761141228763647919897832411474341194554746564876998823871584555828928447991125563518766795876188217273272477566278575714511923784873879691879121667623727864762828745967483493548568147556571911723262839244641914111798425512829216396726795315458158284695119829384217514319523856718956996171676451485714144316123862434433664279764738831264367856984796854917955127148236476512732599557629688669423824322182835976858711556956174324689595932699646281495369915337757848871719318934892971212895978876574738374272423979515595877139935324754753885894829157487651794852544682928325125782152518458253212839327741936188887229548289172874476559357434773338775324898942273525262899466472452686793599192299313255713681345222199713995189112887828674631627789771244117687989927961444786871555933545229214112838521625721488857939928555726325429226675499176381823932135999468394197239723575355387945547244989186266273399398148373958422177723539129696647981621498281298651238781277914435382888336359974818844371847217413256592832641273414392582288497479732389193429137476226977518298129637753796467677579437962834287252967471755919122895588786935828892862832457667172362857482728734275668535895661453543177565279476845244832227969483432339494391429884559161428914888516646659924223391799756527112649744426843733532978991867242169228991381512777815915791276726268681621449722873923528779696289478211773582758963689265424446653539939657772296779386398871981759121247874617658428998589195226934676217198248925651776125333958234243462255659722372487299945311361134128135319715753711414838856294281581437847517672113866538516233333335148881723267894821198722691543469641832781473197852713864588532999283249883872825789525166365292812597966715822899464238893523859669654926755746533227991151394477861762766353939961922535492745318456422556927634463477657765384295636932436788245934911436976478965711827831199833243424813464627226916936794847512854964493336984796172398332251283698397237854373999992539639564776575273664759887185322348434988499565844892251943856296787173719984236339677799545414461378128911823324936579895959859121936448134188943964469774675174519215568531861738153149567485557391285364199995926124332181784136427712468512865116963919368684261466576995137429967992954464136526694195573534725842257243521411531581351148477586398165888648933225231279866131495284685514164527599653277984128838739991769452913819981219421771559676388946499691398593959969193578676952684398237785136811926157613747918788125985899321829558921494733653696897318844755593377738947418155151933767814898125443964361175752692619649418577876384584276655896247272341576648296885222537168998138423617433244348595397488352222264552671838948787863728762837281227491531883399435859979427233782395549528982893647547925344619778528588647572916237986997213691713741565974192494999627459729165238531349445954993895127319145741466112172536422928579695181236572736799765415431198432158592825935918731461148693948993324399212678252213962823277248982279491921388742164167866566797678692344952352584874984188176785648747926285392769414259166142444154429451132665691154837125762893489753796593274968516665338776599142713239967927613753155543596636457126441394881456956677255669558728961198775529419568755961745499177789495129783792911799285734975786365195842919498259448212556916314964261348877613349356267774887797679976645886344765175832297616728674171689486327199367946396138965989217925966731169536795787882539835878343934837969479415326781778239895234448898573283974278921655793338157924524488975499288287978197936165491132387621383679418117454841713182964288229595459968893258524439269282546167693684912119425256398625125269343241829619728195549179396849848929298862552881384625745653294112466441846977266889234828673739973617158677345627573812989241391823948267779558635595195834864126634579297966755872644545884942815882139299811381669282527139158524744686421962568559213889295181748424724995766851198425522356574278691987128175816859137328932954915659387189177527741328735132469831895455456776862482955992612492398642763113271883383558499124958944568585735137425396874813488931995569596351517217528934438565337898936754722484998469873644437783636865959926896523375422545999447678397563969456942449767818897318226359558924724868392147366688518369557455684745762328572352178152568431257918273961362635969327483451526549657493946994916756635319217961866582951424447872444498678928146522871979736291499858422628229993487387272959775392961961811492851973863123365648729529516925998354966318987447386645581599649435223574442439863989962476299144484649174496298197992623972864241722886572786746181314986834374397938744156589822135475334914442191781459347935548358416526926381314552566925885723152429244821729245339936692126836429155679424619878279637469912672791549753773892926566612193298211512569941727617452396726993687476779353419874397565819632986867878913884325365982385134311753847432445242673668868898198355273515327923977929542711115852234923339444364815347942744966177356759349621789797752969858155441178136933213429578517117439818886612398673679681398375671864386945179847722245357431272576753296736822444818235655355688978978445864954747842415296742145798473516593942824187193558934765748174741642389745487885862846836348274216942649161453448684236298424763823855594683384661549873145423727172858978959727729673715869824638643862498688791531246266525339876674279253212649977918549292117778968964141268427266814366834746588721838381338277567855571829632959329515284822891954219239921477484349794682284348843882859554844964628212945428796185673141452952925111397868996234376554123912992387541527827965938568556535119677896681714948193177661257698157462653447969535433528876824559474858999547937473963495897457482966387233888544417476989133396739266118579283535921494115469992922853126652363128514649558743759787119583761147123468768267565678539761579613945868246831769657331183796864397338345553498136944459663365595951949614185938385589272314735515294761967223187128594929774858134113927463475114364859647113565736869895162712769337164633893668484962297796728676499815839845742936798989537589883324372113538213848169248375741953749645166549758992326859256333324342564841464621777358932376947481813942839861962939817468324953238445884559792936277373593781872712315121213515627277865123386424345637269267921348441818783567148995728432756114871167328111255796679113894629935197597126661791152741369947958525938747633883389963219868853338956815346937118793219181788923422377754842532782852382749778976282316898476695682516986474275988733957795754184852923415316538737779854617573843474682333472935618549281531645634918535361626828734686448462432543147418758437729457958338263427282623942369222465486299838858998279796391854985458441916182822783796485983492218119989315742363226538552574159187981345177675365965923982436378514398869574674537911235793375787869258799571169638369188273854263672248931367792823977921267919836689293371772838266748166768586433329153539249866374381565484913833379324311637568276675314817683995598488496994748598852917796526859972755693627893254878732627557778961645427368477878999486586137447235737353612289916692121982373863932633483736147219261367933365811611359976392964559836957395184539647684248475867883334791239758457252174672576883367636768317552866315526768265587454498546393828579443155388592111616914757143462163359594961499582366272735549111426848634358948383774258349385861359585981973962455286933166392854133581938815658391583757393952121531186979261118854185793425736251182876286276754752298761737873772531844866986366887183624871662425897487355473778378338545882564535525783283287161574822558329529274477884643378595847319857334914793772338957551695386268884873751895174919554817623179977849936483199691685543171455765229133172999825516586438424367623944796344846282726158575667438226417562178221691669943199911112581488552683328989373259667673985642733994733749746587215717394687483995278648834697473999362478332964677247958413411696273252254133275134372845438299843256859877943957476248783862217672819634243481558263395984511192535856782164279844878359864994314476419999913754136437985169968537386793689425338834942637579326777892828465287696613821355673992926891626623244154773378649593489743372191736463273739588888719959158465611258252427453455478938487539595228118995773763899146216192866249627875155823628445922485822429719484283732643155437264718398459191538131637571212778962973976893746358985863842667482814728744666256295993126494222811592522623879598837736935469269999293749247487398977536747547698375813889391549951669762228256682512874871351665924975672389895557191597662638689357272947724158723136249911224368895521884574734115284763363916429652231673385328782843785827365738225898443123786129617893827822913896937882244912857278527994759985128898414138362482523453819642451696548523697995571834247744813873346641449939652652995757278715725822556962545594624346664624911695379346838943254533444658999692894251966687294442679481844695551511143925643417574534815593333371993127538142238525699394971728363796256354914242333326833367487559568531634889524529567731263781677315848158345997457582382639697912275955124489399696966588823382921964685359915986265114223285549338425339175658687263488544293699981533172833734298338134699492561972697694665524589247996658792369767898648711481715144336998756284446634718778671521188944871919635856921922882963651749247143448559299482978165354875161735563174612969974599838386376782788686324823712977159484556798164698686959865785872988234796288432371987353639657624843793473341944284283312892561666295435889847638149831619644481147392583313226696295198468118398641375269995489826657751489799667959135962988729851799839757793943237765255441978633277552679838462926348666159659383758251791479143785365562687278412482761881864459717167367885959988121737698758221775998573977198224162915421191762897891634232144141345248838765852893815532377215228246494192166111735368511714867374465717559467298273888346136498892766647593888816892735598789879279984882593536593573666922317887882246877989987823131598966275877725697777821741692357877446858859415775562789817529281227456454324626569924929765297842989852892541518337977391182994887677298165965578944357879179795772276887772651862152758748727443269597931687134117691485873648763929913117884473389962192549349122456983152458569398678565443994936153479739461642317473661172841925419483963489635937587543398895467745351418194389854281275518731931577781759775666798681261948321376285382778459647896788525113692239682454918464123256669764145356517538519512886415625859396662438863766587411463497615954868198468817555929946598866159196879548477134373386354434372669925243132987396452369723187475751928183777881773735786449961346359571765348399754365337345117762752572718365582266773589345919117237996594738163811956669542383571759713246748748568964926125963545229964857376235371854279352426266759653729218425471323928951768337249529788114565914464271467798345674711666579766384172498156774878411652618878518918167443653378346298718578581488861879828517486783757884631547358155999652313591929125567917569471993525959172575811298278111114219194546256136329916753593616116679856688879352881681638969854547145745767964983891877819546697856343583552375344985936284152956874967433714496238973594373522478356228344692814746363355238635388247353879386216174663628124252874211276219276262469897876687398629858537931162765632937596426364826839989497212144331784194851919691946572164875388527658138815569898633138712947636978526911736739457173576394937987116963739987299477834164563136937291296175529391178975422973547339481177746185573136496197898631526693986846554668319285794259819988716469231362723423263227186228684741154661955448132989167892746144867489345785739585841625477477895685379994858414917349524474228514733489344523996558865786213859684469841398411994452494845422586558936646265981296543486688629649595774785879814792317792373373873269428854352855533328476366159523758542938811821144696494738294475749265342296489621631462594723332991816464715649672566397961479118222675881193348236874915334798885356299795138411313491849338523452738533834273893944693192112685617719774899589653456723285593885338475678629939117621622766917655668429874861647855667325911877123639232472545488414193241354179313282483838893638551327946964632359169723444582943213347263517296831798891986874799635634998636195887444424646715945891773677457866843348268848919424529355728664259854538286168457774535322718966533249352548849594821218873682117545145827651439176919697479956167763724327366573689236167946274854948956971731248743965972382761546675518519568841272362265339349592999255255472773584294169664997369821266693467857945914158696732994875411741424812396348435457879629767568939456475944128358176688553257925221133312584347115825337443661654547499156582973283611276614824998688333141893255658864866841615935628981479987794379625345339649351794689431655614211493725372368115754682832514577731976129475528535792491585771732265664614132855785799286399264782898361362872386491596539662962233442199213898649694669739158121531131186387565817271673776226991873463498423137779623618999552287856793928135279638583888871873673678146681188858422933413732444921415845943793179321785773213127643547685425762695995729397758697738164132514543286375496846589138212532428788945949454767746637137881789842454989465759969735989545817158528116785964138198258565664987937976147441136834132133947817339285498263387823845517386922652456561142153972192942173365617891992192761246271644779832932646733316723182135973192415892177818588752145336832459662172149281741453271956937743231379646276383352121766855767654286964899694694967842386983494292943285475481163843998221539979842958459982987499587799632533214648414215925229146562369752982461833349122496534855933542782487986269863648215329798485133464726374218748613669348874296999375174492787485743342369277214797882884699739282965818694496481523398467629616489684996843641529249852784547966987647398775769799116842565474858742783638766451465283487927164939279192967445569539355248431329952422122237697732697892943837782155542747572887666887736788814925214384149835945245232865526273299521288569111487548435679923917498595963831824229167443835278853291577486941312943755598675158544793684189374546228959667258873924577358865198488146634191893616866295769859955632273476931282247894263813619462697473587716562522855763185749257248696173437895166466384491265882677993772727622599737347697882131649855516654349185158321364859546161839383149942484522926852865368354344627753168133714291423824464169279145818927778193611267877616318817896121819454682934789514138263958899571554864527857378171594636296834996242441419215478968755798184531559987283565466454132974563431168367796896531619197314139875422379315291347871983827516749776264456564676815785583237772428477156515852262319982369396416582496198929646673254399774627642373789753938525586985317897421575283533632977816586185464415753925929875675484214185353131969547443267948258743291569784963342359719136579744381563963623139151568153599459996648482654728596661967972269545633984966519854731642119868425116597484369365546788787421459242156894857669175347165866972635676983725247226962521579115495343195646822692791411914161634974671345643322231992114784119596223881233175419352829982969842943758778434975436849927234258376434724979834836759258957199727324922593445757784848452982225457453747546842648582225493359554927335593881584368182999989797914317129257573179491381286964586586261242227632854335763525683672593825545542592798716939185896535852366896669839156639694371535492444245797413152644575217116178876855729874156518384174455959785532865478287928677826467211293994566764366436243418989727365694399986845796248665912965518255484866123136696645836831519549473576869387751196713621136745553276878618616731193751773566186482897592724471114315379846826164459472142339447515415145264147934746849395544858933167292643677622226676759657244334658159959847414244388538987417315797123854782865925981318943576991114632954367831664952462314568332786793585969758529738562219613474262921548369415857364879546687759895669887155583873465495172759786641291228389961836861241694437664679626947393493587778878721593574381511243269946289324725616526427299374651515378653488274251669793658369323345154741665493765415354513294467883463294625993372234529749335694999991275946544958445636868428133966694742153578665241931714698298832248386756674877263486549375847836474448167173584826386889225483144359665416389868127843665728897122891475678173114866443944958143453666192743359675178646316354688199237382285755827829476535561819325884885582592437269831637996114368197973346658414397446854632223521654422754844453354625963576419798992929836976662538741896497151959925492776619583147932415859557179285277976756488513685754568133767516774954624366883598581949468863996986356541554276938574683665188386563962896668252896437924968999999456368643296935942938812273188998943151335177371234354827512315768936191614448474785494548692153562392822626587348676413975884428871881918276228572868174238792361993471585579242171723681757269722312525228384132362173958645956191925229399524756892553383631174789959436246232724289666446938919684116855822994436529655739699148959179163498787714879791357728286985415788566149566835345786947848336697719448651729946923616553512614758451384835275982848341261123753768289244977386843579142391569585416562541198465743365695257276949232965619388278683881849442998497666996672333517985242429727968121922863285966818111823893949797279477988298417242229234494485437438479221998655948693193374394954277462234252697561299555594968774388825456462381917287788586771264828211885336834357952829993986264779476626292679666896199112311477622886762369846749756573561399574376156641483743832678345498848318927195921943923355385231776239355147591546479374644969848132389676462985422638612787566794476139473597423546839279552928696248858299684612555995788817647459144743583475637538245885127496494825163382933444718571586173745881678596885955228359479554848188832211943812643431968885273815875799219262615953784492439626988897462855797399132126686284281389893958347974492219686355463754738648676494694955655526859761438349788593611855447359329323581619124917568927882377871565497787777585967156214599471957631214972315949345667219385515417699834961437165166669337287773248449756195419975812265676314913956522418254366965726582527297773447828189258589227597895735496399475116541983857623595956595981675649661268455629345347393877463274989854388797423845165358444817176416823422934745795399371669885674864691282736393899352146821428837662319946765582866569913142242116935538279375334492664886446957823332287361962484939489947521356416731148828492641324317528911889422486632382957679544923352663362387533694341535922225673338692256211232193663118927539288146644266673996438337679872975267321271263288429271593463297962782528722664838257623219369155479386315837114973829592679156877967593912416199142291438953693788644458965853239334874615965124382158357446583997754126349963483762576718489646859597542664365499591327294621739942959359545589658642388899975157617682845238888729616885382558317714754833721354921371695165432272874968595293756648983654318324691612698389273562713197174573894462315245243615656459734828298533937649268493995196925748436266348168886915341617136456871521226233539665384726934528189899995369371497788142338784778218116877335879388739643379459556547125429431318383159542693451731597273324764613966817252747536243275423873913881439518511731379183541632941825369641529654757356587572914794466635194887733396342974181625786226115338443937289767619388976263161287217932943565499221138738763215494349599676989286158222451986277411865892211188793644977227495163472299418215346818749295957573742382887838542216124274249831672394577189949684837723732498854532965939527384125538749528557224495968413886199138253222822441535136598648928789981685561613937413486513976674555242377293162274598137467832823239842125136767256632675997828854364779142725516739369318189249331892539673177186148118498726318981966212823985547889784223695732641315734646661245271597934692458816928483537944628957499455587936824696837885923694571458688238817119662483445944217389866257373158918724997477747157912179396842994136889143679476483472123756733971186171374331365458443729787457367916569343413276857416924427785584472775844175961224767761799767526674179194156136166232661811923991746589333733172822386929428684239664318888669631283583573885591897976664673746931999748642391184599748953842514457334783455829654597343924821761115418255481561715724694748676758613648818531276346915646716914483149353463285786879244132211469512232293227895411998932442547836759379249757614179298183635346461513722242657531187995678485681999814874425563828242217599217183284759573116948175225115477529618477932987988966529825223769696218335549676551987841678422544135273974116839934488417437187982764712379665861215611951995957925479191856198555788235658449555887388381488976982514246732849738598939226847167537346629174721463965929169821615375577338818469546928886941897593119254882879668794163511259381652578718247989455633696777435329326995723649363713429281217499642949289349419974315579152879727138428837629469747482126819937928578396735127241871849795542579129759737773485344976172436562492882399731155691882652314766568147891492883995492436471171536317829112551736788517881917741326745266645664918787159856745874528972744368837843478176146349788798246332826739172748689533955457353281356889474851376112625398958451811122527471538729725717524445846944187544637682788962652479929918934619576876671962253497461987354654743786689321389146212367849256819319635859259239459625925589665716559194348387752616359462744499764733873426924767932787224578332683482678219829665273985796329119873151266845356782992371519885825795757729482445358264763257471568887267616727668881843697995569179652455156671791438865472611386599639168674675881999237616891264728294898154779777373363636192457237775182883613848145797447752292417372943515924264787492283615165847579176213787282444188889874877171755315588886141736811718868595879685458342247716684692837156664249942385354617235882725655517915931293292563648474663179326296773471882674195853722866253843345549572399414583749488637462445849279949137389563828883444499885579827795271429818445892824268526997438277843964694822692731799261942931688147959471699425955525464672254166114787444298548166182949531517141125248151352985627667682772791418942712418837584337642629475414993975467868442723352343958476853164875296379636221443626619624641792933663599238997392962486951436494152381923118329631213861468258577664648569237298814792311689929582622698867487589679794938488948645187859278763132137263962866957181346513872659668292185965153848863374995764589459513737659922221891748968129456929461634357115622645751188198697122579214142645477554649626268613362857191925754833361218964912949577588814159576626921878647645278859857279311318915769568314316778893537998451977961348723687737185742272938147286485278427984678272772487223425696169886561492963992516314888731425614573121758354427245616481246967841149516376456289589741821286935182624489675849263361448951482373734861299645484429824842156484539567839253739991389547736259176322715582886284473371836281249947986356626755765892734392788983587187182181117289259796933459422252151157728286853629972798799877826657343922631565775534124498697945138542715789941888445628236619781855688831552593986712738358784263688259422978935929534499973867767626149425754954985522219339199652452832683186139359113978986629428696739242116912653621336734566558334339173839157589891369384737225852335225679124992945781333139666593691679179526451476484735189296852397699313426834155566687597859124523859772575153161991394344267751956799114186727229964813646942268327692112459395275988198759297612659341898367237372593624761113151814278871882249131825262779918873157195547764582676864892392168311765544917289788754877443519911678482344488774288416346654298489762364533396945767582195482723749474857696428189467353784551352942574479662724897431684825853856689691281425168548942427763748322797193463264922119545755892727966919174473194676489123743762867819243857197459535549899866798179851925921482516963594453848889982115826744998989982183548298719676258578272258677439597687473541675443656729617923912772974797396786647317819733652154652343416235995916879475199273968597884799394884396534814786176443852224168131663645685998153538259869868884519374182189913714546469273796564166874588554143443456683197798165474393692365569381272272957179691293459126332266858976859991346288313942418888284316375616882999538846712786968249134429148235976588664998857214734933523973391814431295414272369952234322526267812283529957459234464566581258619466856314425457437561828371433289248249866756258633575716996749427881914785659619956682117355988779713237774871769338225219877752585324288323643896218668744728816581852449634359492888883315412258975224763754468423695421314518478394518221737372441635536114351946543124178259535224929258131376732979438884763258987477387317845135374114526685878976853892257698536292518688734493189993936333416391518187827141719376771241571717521687912976745683284358652592483651438515268941582978314996833551647538644317828987253789258532342898539779417945843545831355252322833397521391495326796194345374199117882426852487318675714817555864937493788298758778124891885335179759842169723662561555238477511428448685541598942195793422684268278636644631954477914443221296241465788287485947199945988525525497777319843798619786879563884845951275148633977562176582192745781742148759686448932158944697622874768349625535836739683892838196672151656823622993246783967668946194797261228251278454281218796683635294498822136172689924644997564264557129591879318862248651183865888946887548582546935329118136651687693599818954796685943365613184767959144896447891989867122638611857115532148926851892515355697654851978896616186638833767277997526283943629916994721562269683295171442672279856911598166587763532628331342184157347267185519653221194332191919453833852229974594131941946626448263325535442132242763288185288333518588113225243366481112536642788253853643171929788874341982845468711551751284631167557524957418616994833113153943382274158179352685357271466685541739544749947269344387633698712435889713814462168455627365114134147194664559658252349384775529475219598671542834215981314626345562596675843797813998847944768468621818189341631662583498612839197483919346673269463317343846937417874329869668663923411733885714426682869823918166543757554959868995896679744697446179499872652267984833113181496892571285863578635228969517325781794674486956419319265196478892415229921873436165458215915557595989462818679468755584437667811588657182758724455451714768698263474633987148663814266893415619553524171566819594386788716616636245372346962937593132472585856281648783595749188372464537764738375875964372883757223486684592511279882867916111554599943695314142146562856887761354255828639685545973218495433994656676575778972697289671782368493572795915687357422758813783735881597742522266762338549327771719772486914891263232847683677768193284842577289497129992496258879912776542491616547983737794937253544796269995173573746748693754478251818643262789716467958662752856339313466877218595513646273447769772758956941487739788141856393968878884888799927623581466289116577178225452678785825978179479352842393427989385929197819397282159661169148353771263478272276451885118137725494254844278411544924521758656553883974654434252758796817563342473616192486632351265941735184763654597869454778198728526993961714783115421866654638685647268882634256396128654818597442335897962466341149649679982236179681778758817658674114962658543485968911372366882295147421235888844195282384194136239299517174919266386489972544433926474885877695267834534818939694278221722789978144142157494598842555581156821323638691561862728574114218777383979938939839186895494436969822182449875754923224468945867843127118899776274141794831318768999994973314836532749352886894485985275912736134616447796744895856586735335951436587551979358876466872868494769839926895183216461669599158417423125981967494641477796985987385547843366511373695583799355233227187939854729841969364476243237839447962224956612626544324225821925259887257848511642858685267589674921499373263394759276869362285165762676661277355582225867667865398417186886362161612694827933442766444374563444939252859496743934269664845486117813643294747291831664991815356325962261786599794685672883753659449958413168287884535699722935997345112243454418142333666438688555955265371619487547623271356348125424338836285989724132148656493369156414825719383287713761991145377374678993655579115283851371631366913287535411995857361549758546919585364949933651189279745542727384713879658328491966282316942924215832354426445967945478654384827753192322976742583942282564333655945471998565276996543627731287269831315572591571732341534255726237928167497885781581729767961647824494993586642142716336349313252929551222529262123937829438753545451923553267968751949289183417365779531416991998168238344389642195172459272491386912752359284277116264559188615514627192159934486347893799496597393783546137734519452822665296313737869284678442216345234558487842299581578279638713914197742678296961719936671343217683343659227928381792386959182133182571847467242613615599372987729659657594599371511849843377712495212797429438198827691334677993446364994728279632715954394359186514961853145757479714773665934736631783148932443487979351164894563717655642664457528648979532693348526516392476336479666468117317947264872427959588885122674854745725621771349755522983712724772128871927953268561733849562457944394375953815971815632152669722739441919364223172699816816653949529988659955937913581352733519626742123986175528985488987289677641239716793537285654553321919147797433721791989367814886987826246392713554936387615698596999431285258795792866746582388263148418157599678814895296997251252853678323336953981314935753528624916258239466685883183593382458115849769517756457229781988938329746583285313321951942614885272561541631221456176461738143319851876495964527876763681699739763191795188281958775689117191754174736696262952154349361876765985981729363977569815923798531877374771629541492197454669283835891946762277641569394727892498442731235366975135247161998695756793867546185739972991489765563139455486136421332732934691852949919992921976813422994795619173187129231973962735957813976186488876232369334357411418574373655174712112213617784367522583688579592535546289628586366359984855768523986958241216483221442521565233861239894377927244531598492139883966653811293375532588394245748649858718779985888135181862369971649618554155295857788237885792873214622717586391596113996794232285298273563986496988948657616989749398893371621862597564192823791119672729324243653199541817164959792661151963677395236492356797593528899886153796742472619247292379322445491674742724758698898118817458233389864357766276395178822535814211275714589949532723281836749264879578685219915791149777482925298372336377924491918236212975838896266285289197822469944164842677365631432192884876212223949172174536981188232878279154271617467813846487929415989646323927758292411195987726891813653523733835926319197578238654817478663816936764335349848483268886747433549219815535798592646416716988855531143853412879426319892324376466889669993832857589781393418624969485532922215137647586843495559296938617838587215547149143382683516593855719571461146918725453555591529886945961413721137427613894689139785133678236445851138977611988635829757539249255236489673939827654641534115727253764131122552246592531212689554422423683647634452255887158772877176921968558286122196893773634917169414889676245566399821374514679983896764375852245968346897619998694939586396526213838649989279599645994876599386431618959327211767976878495838536663835996695352838729123375929237473646827574473554255237967866167718353874723459481292379368743341972522366951398775354367417446949867579296653781938991822268633148511656158361985226253735427583679863278481959617163516254694263622658825959873365894553114858231664154927189557311162783271684451689693556481487497898795316647571832852637457185198451374485116413341934148243724975688977919763668373742268722778573447625675777688827945343347778749757873625982796794976752274794469462213619625287817882687364123825248572654883251517163911938147899581381886337335116879991496193658411151194151831941848155765678422946579351394237231627722976543521254169399222665944236256926199349893241164354222178562475432133731367969247689148261176198396981762534387512455182534957152952532992286262439312589626984997598843632888481433683694364393376473767343459131296812284576492879285169953738564647958646898154371336521882618918955163927499776675779157478153273562182378449874655126688679877358292614685632549377468797351964166479986529515957214654856795356427775688435153582346685677877584969747578629529753774958914117353414396427546428369467779476526472475589161312756463477358519278653364534769822596239562467354326749644328383992881392221711622976933191932893119122626645683698231586297434566477366943633562564888846587253857131735854491635443389515821981517967283424435559476218795793824372999577478258786821222521342595364526874756858148629463786962993459745748254689867885975387957953759614756464445959727322622116518187891853182226462587185634865887677743526352549349794552438766559519477276437324289845191443636116673958462625455663146972149588581326392689885921652189537235885637427821517979144541492876476374263548558577341266291367886587459558422436581812379984584255353745988859442297461773881943394917373998148699725264656276274442942235426221745929814494823883365828298355354224431993195427867249159722639742894148348989475954697778578768172688167599464458267414288725618575424882228166722317684617981466268295519816525988433177688715759336371312926317165623889768451597714723546914691994672859329669448984631236224769592345576498225217119262264964572932753681635243252239688875279771151469962966278533233429535649864662713552299357353992898428523583848337682448923736314584262585582432356771874314493745528366813288858357146776559147456741421798928819812457969338799412748394924768379156442373399416671913419587547969121115992283843977948319148248678828275758447824196933248632813421741956256363325331188255745856211822156237786879562454428916483545764811963372867262966848115683848999921659391568871235718392351444643676773144348182158567692231494864547427697844515981994987139248341222289438533511469256697384573173577272983515218682928836661681487556188145862526638247413643663198498737182517643495691884332534877792841145859826649923364497376724275459358314686156991419446999897454888914723985279475747771616998868663672366427539192455184657194239751386198388524443116533438419153287395324829179429432535138954161759933971696177357593299362121168613338896622496962322883821533754621113563823971319276948328177571142353965921114365257471593596323456267511227783688648199735589579884268499699152721195581488689514682962967588999856822479961653253481281235684842556426116545948646488896616779124229613416948139728615815398743119969515669651221374927139661197932788313437819221112288866959669669573965286984454577638539234475455527528566288913235947985628313621556822682619233215849184674857452595888255187877265846214592338636882262552823824824233169376728496616217828665839188454562854964531166687122778518949583473279911546359352171879837575987127389544435261884149646896565777196149298184817567468457592958193154137397128477735665653623688923186569988741988671952199425749846144618649849292855629838724323798238434769255845775339692356779316149412588812957144632329196178942955672614958555713143767999347489369129544859476473847825473925385643327859284456223292758371482126195266475169245744556944183273295216924724673955789889654973152656976514731967495114314519591673225563474699291714771924516587558928636758686289472235533544278464723797953769332882368947472583934552872847312873211821982468264814484253383664284772732479859147917686652568461776122656361269314983717552865744815173224343672789339632442171576247948474387529594428181587368689634916581723921513267934564469896491175695849566883387467531648489127114452646795398161799613121573366454161357762854629729635796858588247792912857974586414817873563344257859626272153783665476317497893453554224635172419633752345842158564676295221268534851239129371637294917448719579296394148111334662581745713544529172112467611595277235588964319234689864737433935371963325643466962696596967196519385218277539584844679615857174988796567455416275478494338582257273745852358415827489848343863843933897263151683939645916882531513537452557449727274657337992188326769497973837373392642983881282183429578936588284183194219475197553186981457844927219578178444425871288621894652571896927166443822535916531489573376786154368546178483113372391639729846552645698567786271169397511928195651214973485863262716188936555333398694152972215863545521982235594356368483393112245975492842743495296384262885899453165274375576957318529696626956515778639877683914889159392121558861572545591248947256827714395868271758623473931711988516677543812195791144381234792113516914785527964416595893822341784785716278655896523139937879696764848676458911727174619627199965485746544463365769491156917939771253367345434652164528676197147683713353376342795423517635189216336987344869369418658995751617891795664815521149558426891681292219886723616794846414288157287134925551688578863995663432812391573631963458262148865666684368716989519877224487118245335556132882977591125996883386165821475637289372245434691964451846758877956896215343598823266458332443387479948253716919674441714528739413893248851847783463626237787779851763432811396482217587749862223789183379265993812935819958374888427267738729139467941989346658429896836727353626254871141251595639917755218428227768228949542964365465763598984172871913544666216844966369473379956739879824656891615616484432137835334229674868888778436344766553143191461176774953417937526298246892561199383386876858343921665487711796438314858742261942958769639544146768336768597596152437783413795615859417567431413387717778799778535362459764985238842292766185257421863691348724259761838114556915574613892794776553913429496481698281149829487124565659474751563131718866591539213272528296129615519356964326959817561658995496615526264885968265558838113692535286549612341277179299219826443351946691296843833981155278657745876989533198245767268571697115288796585655489695275683787233783674846688152759149185452871976349533476869325899478156754376945244239395115583572844352427448582771398826146527376528866111892796549871197397667521331381592215831894967578656512344797152565255548189447949558193849854516743299974658766113729182219184844124477862657196911264495346832841234621112995646989775334176893396514795372685661368958821742762324162721517468573315853689758941884189292583744583465798118372749456494637916649466243482564345993189723649437777764491478247966662766318738215297796532277556391638262615345458339415439831587968967464178894664454747422639643885997611471671175247454871178446866297593466497475926976519798318762489253597884622445931878879639969693721319864141379234918592465239533376512836843224728854735766559987338761932817629417547912521286118456537942293367758547486368116565251749932457976597192482246784696964584999269697987587254274193989638534663698959751754643834363351172833591749541594482665829895247357476811129619914794965955326897866443144685339561798717937879986241667354596989155699824383286236758666973576639486376811433737151587195264318745938353272289649997581268488536192729264982574469479576212788668554928689689453132996295482362198832956138157959424688792222111379955589778559229155765879465196772515735886595465921412965626957191648182798951914592592737589257669955547913184356471932177174199992678784295495752299764664339932588259152892868611714741542356271434938984759396728826738211382628356667557862119744656382283729367331679453561618214266647233795515677592594481758694795316462379876279973365654612951448864393484945782789477483422563116925577676136394366948789967519581443627775398664347989517932574465329293461453983444319996876887555933694166118493893923411286969946635946415569586563778277927772548264975519143881433264589926594645575586814597633789668789889913377853621823822792915924154346784375675512629845444948829858919189251669153534149921984714826456318943896177321668574131563681767624214548296726266196216735838982919228853462119645219838535865133326165951788619347753797895741789425729189252482983838441293517153437873672387343428593392966187844857946867975587766142573549784899349789817475176828811142997532443268147391589689476246182853929758497712388587199216141251277396389363968791618953977846275138756788215872951429819957973698652273697753218914758344248577476783797664639533575292843841397832743684195961773168493565455446869838496917987141491749697129116767577217545268898557451858461364317974753138654892575494773172341295985935164657478368775956727145748755429564448128446488824788287481245412617298571716162981378614426746712626822943242277939557538438851815966554228383161438394615775587555222177938217521533798898824666843765256496699561761559697184726761434196265645867498567667655489628246481677779862681744684758922639971747858816384987764578222214337582643747545466599289333636823929552833251716767243596634228989756147783223894469293688239763473819699629355948697648886694376586387889438645141214838738885345127537549836576595554516735661483439192942393615765928447751691187598751585643125787825784595495829945767969779325633318342913878562777917116717165615388156825691874886979274399216488657829271844994115319582799938251359192764471549857495921151789927968878399786978967387783256147929838611449831816785239493414687488616114175914266218374844692196495641753333561759998851964548186229928177258156599688564814138433163672894232397597953849594382952858249944748961274696159981674448824264435371318521867932558887971357415187516319984853885153664638244516536197234694779755337533963211722756887838883478192663736389611745542766845321578953275648217695561236272176671175988652793356265951249136585887794377214966937454863584195742269842378919926816924477356276945363312491146795246178185323746736535998775984972451241564931346929254783157554495554691737549478236674945894357975821916423587842156728438422578556882796738651285558152135952866498889379426877774182836691276993656183962998599798882644169735981539876644873999236437795387765269951429395494327947323145179967792281146326564128968855374314741492727836858733565771215986127465433466978736665666876955217856176418864723796876186444325717636132546716141747148992132739372293865866488944846621774945632465689984215742546116885975399394868616691721532572423618161444393975619816946324387572169236826276741475936585168729395413938483582463728978853999557746566395264635548753554255928299442633466247773199227793868416991454267277387196635588135716358162988623443646873298839998284737419721753359224469143674987671285535664332299787353356966897974623722178967689527692534811233193244614551738312216113257971149165716989486249287734275997956754481956868567835911643684172556752192918767279477974149742598298595996113985561843268186994679786829141736128257899472589547189258879346356561934145599569912325274882325887361161162721389225191658541289428821245857686474554312839581376565424783142562658459689169865757377671946925752497578788923878784892577817983631739427794737942127436897913959622294835898418675662864688595231659465558522681691625824672644325879279157726936734469972595398717236278357345889772492895781575967369732158855298642924661997569995199552254562259938177747836999989829693955794439293723634789338764981899476285922861565848652386873971986745184962953474689699759131411917562631152198844924781737341152944177652487376278775688331139717193673715418725397894778543634866639191867116596177766874795893176858136486898789846889132392467566643919571369886365945741917783574771183677682935398731179519292213258165762332621928386975542763118682847872124183783174714749874195168392955634283366577887981964271227215874237663385629593941981695883196958799918168945251185281727831198771695385436858875648945798984516489652142478559216282935955222529926899764865431455477747121879532276492283246852666956271483267837811218145631552947126791289237348498233886441498836822862115969775795893224382228158646912791328815424893888758785394796545479168815447825591274772784385454592679324944963341966368483712997139687622142596239915828767932397867335439442571366229272847487853433318293158832213177566775285649754734926834829496458957449319397931264355399127549279416798121251656453486949425673697271471852838389678719798388961271795463361221218579967561893365615312918632715478897238998429238578148718892594224289499822132755688937837961987364566252339892617667469139291951878477421146181364359454252337837725345881885511492526791219448399654536222592459998647974519148866258198145871446925432465946718924855871223648386839254939492178956268838825152677478539416367374229231598278797789788549797692134715162387453423211813889847514329994228446853665857416373765314796874811564952711479192549696111653655881844915599982113141276483241634616448672312388175679797861612813227874122549679951644424144453691884669351228394488127427849288759817325582484164767153352544653834427349952131399327768288331929491759325673982856918675946362966817338539984432484369723135574782261817129192214348937198919116482823668367916864263279216942727291598167927374824962748689432226232228525424838421814195316143687527875288318588361699917973443233846782269433947565727859424383169911227317519739128431878294827786836611964773672873343791414546359983478698393638753239795811315491635132918831188611339723163695912564823687771746445843979281459492656295223929928175653216252378189895885198965225683512464347559348977776223686476222126957913219797978594499844923385786523262441597788346361756698958949478123294111757695165795474211214911623473448459657785889144328831947177666541854897187645423891539429532531623477193373867512898852763454684257169557278736736279568612113234819623497392588675778163176179379164267437537759878423799481699878491752756332932147552858299791286317576257348616147694825392388797352692178737952215677164969675997692595752468519687863167973462484757915417161559682259618816215981283473962239169823829237449586747651452412553636529948165482814145472575598159651166876825744174161223968928935523947154727434714917524659398571821545756377162638296864784648463618123238781674286819798178888435747452364544692748729627695621243646256597143172939778481612171692272338398861576865865573917463722741328321562577116696297499782977153854794268557238787942267877831724556515546497286657228364776435638896657333692778354389748164786954736479843783996732656178799673933312984873763711592936984553672348751991779572768758237981196254862765485536948472937785158232865642243292146641924571771987583584746929342156743874336533727355244877585981249774144887619972921712575743711151644359737897966594413141944245522643585457919186442335461884984755235665394447575422513262353418687696459887574556232478946425426911824861636597485762293366434368747311341474784449474129946778879988947259168468165527969578549746468485238899383587316644655451375928286244781283786728573851149238148966634333812973428518151712641895461284193559491521538947864657445767829148984148911891673891977796497429684895324246746675688737737927498698932959471865579291993892456989812876643713794329997646638531129659212835213932121995187541183353548142473436226956756166661773155863566374678254263293248761766399171718844485861657158785541515241178615485261283469348738895371745342529552859638147565928799682923517158677836961297695685389877127522669591477719153269164122365317863153931447956343188555739745893363346679755284863954552319716914421876585447391436466995635329249175276534216685655983556656445953882439993159399971732756313634843887616978527199876875452644724342519599178479411843243763558417162984643278155671568124922975112493195565911958318245179576915515182487528751127637372826586669683797455473665724983225599185459263716441115433374116745373594911486329179468376196381633777322742585214814283239828886678794444918713497367796221947444217579193271131715793552588891194825682584199258112864929395955894187918934382296297326912279124444695914374471341752422483953799183936657879284874914284823799317771679869734754419774139643184766171825717879174589726857693748671956128453947364884592158292192646745542491736776788577446233438533698764124138415868351532675751817119334143645874929461881819356899874897598793237674942765863182879839299885343929841377535397978895927527872547665352979266948289918331139673149292164526817916869661177282495669688943812548852355759268722758371646149334775529996555986332897271226117477186267625416773713312544159744641491887139532429362244625819159169957481186436577886173632512975898286526661834593666272918752743813362874856881884574441922437832255629765413495659887676689768119356155876877883227645464638477739845529389789463652795894552172367557251147122795123986312943496285379837581717521176798484762452562453996347352522876543688745999228747296685778969486953165959182414939268191194757521228614596281213197684385526498313567844365978432351437356825669537689138584447867181977987698961681684356587186816683621136675664676595175558385991456783421358979449894574995791863937381722835551177595894856937486594532928712957339117564957172422889653785954413292154973948248737566495475727941654768215942429995588777813985815824648518383619882588356835524524446698663967956689295831147921544994577664986182537146177716392693597931561267498924879478748133195738554333689951622534919841985618431493689961638744894691962715276659972865942722464943171178972388424896338316687447958438272485666121284466612132373485642764689832224327425178147123668967939279837298965948575739687832792294674937274179557569682783465671954421268936216396663327392557665543834759973661593362446544731292982251918868542337757266942455287864778123215453572793956839792817625687179728876236476169198824922926679789241819385286833255758735141532952225325874228337272795596565446857967318639561996399118918453947483532535663448711729273188962965344416625819543988177621156945426352916917514759159428965472453427968525597698243559123811363126186329366684353496489263346141514198473883755688936482347357962266253969816748878898938248868913991795818647928898417262767862484755191374594471821564323646686749887789681828575756372838325649829149535348582867146349762129188587899236788123295765652879389562384331273796473191856332353317695593653359431379826829236543643491848659684127857439417494868946434129952378814188281393616464388464788564459787223262262417134828216771685138577369749583547941868445858191527669526597796363326181297355534197158396412741666945888736813889524643731968776847237547495652945812643691174718327615394967522574811918964779887284116481566724539584988163154995761826383541117875357255665155395774469487793169745529385966263414841636723863794374617731148635764198676924859536795958278966995188446438821353463711231913146383988944889711826853859956292818892527468442619967696241116565851428995983373926839955199249789885751245175168722948387595557669298865728893634529858469313571823492413129197797451474551827186969563257144999613188699199127621869991536479966466575515158796489747954273691434569539275686612756682995372671983938371176736662793388774399448617681342648713285216451383881826257686781387796662744448366838881527921357919947579697644554872456268399995974189943315183192896389525783772174477192539671123821688126761765377145319847318479563613436481758457593339391817864993871618568286597495371834121834653143269642925364844178426555852921348434988681318887215793963544587991627694289193646474898984644192251268467275922664565625857824159919959669164654491981927521116838843296982576781397518136262442989676653295834274651431932169788641236515585561319897581887476654385383457772383574653696686633521965584189237255558639631542484132526595487356753789858494269392828498627768598197829557133724176957398587617767736174382336311169556487799886676493131143592867256135276595894745352792627966754659398356821228148821884313337688213614229167283177627392792823858111495756968475768192478718272858458971523458232696864788843253496623457592499386542499495367778243955848454514188487782695685553718749362962164992612768259214621555261371645218895945666972486799215785195641493994477823957256929686729397395652934188396374893448659833944836592396735814734693891433214474339124795258957358895934219843671431397325778227287163929633344295689993913959146789823936727464715327636348535937994967572696643814245188818141265999888694915725441242242241773592348355565739471797598783287825654568158962584396256389697558463841578736458897799994419995373552411385228247992595121458448289955275643652497933461736179319945566135724844632352767713633325792383599235869425313259952363917619992171567475888419968882339418698631666993926553448997139984899779731349245183122318557545367463428171282147693323941178484726745576294872434148432986887652773255853923917698978391828595864621999397989783175134951431347369483788185459357624659657283113117188985823325358693672779832494267631428997843822152354527774237732853322928244665261661696112468357428136468724589742179356825167425286232878159524887261552311552288947779396995861293756399552745677541992572367855442288286978873766449649191594863436258167593169375657389374824123259781861448444662382438891962482297985242948897795827534321584653459229963295968627817569166953178897914667876343847477378148958956795824593849758972739124918128145665791516393845938954922794577959978612133377752241142756167668275516384179597996184172361257749149833965519952732467744889495696158698668976314651457425921627565134592846595534711976622524245553195348979364663996268992829133764138299551775868435589813899593122765315795339462788441761157848359378846747465256231743776339264861724758955767494396295863971449938647698736854824148669586999162783374266968474452214779318158842186515821147686358251469992278255872797197331873898735646255544993233797195679517315844643146481883874755632976557951588787545974322279814248193996299431446817762427641469578983631646862923621221338521469882853499564637442931364242988968723834978714984974247444616497528996946492417282511249987989148895787353872829359754333972474574575443666151685851297262892491271459256416826833995669212555299459957642251218338541671761145484983325919457477679517489977639276362625564556898276163925589556879967469437114192799289973258747872575149564336886778875493639923697638499767417297896428122935247425644752634694529584487538938377939996553992724222457357255368924832773993676435515799764238388451788381799485379439572187637722593914298811323893972384822449482628855331583782537883456524175395837156883981996574615493825627522391134795783931444561663964976874559757953791173427893634267384824594888423894218252462175462594672957447229456853382755918381377255335279551333242246535336436134813562299794249833762527952196978568818738448574788154354861939725836145675822223862696769453617594968219731792242498548355354657695291454656365776619714113663256233534833875451735887573938925731185156595479822645227843877252897941815757264896119134941357551198619766979482994245299248253829366762777895479556569211898866183624183215143679945523422519785998498186695953287677651286989882785484868859938767875448393843169821373347677889434714674113745615982274261592155223881653495879426268952794436616127441328892349934868287324872692339633197998437862398637579867883129334632868429357867847449651133715788238897884632867431349951831577959579853479677415336151122728188874987766543987351198261755199922887114282743712485432199539522348545633989647475647197137864758146814162788331164379733435698646357947483567945845974453636817924499196574289137397293146235226711319828512797137863188334819341762839564152571697467461728382757438719918657489746514815279739411865371879824334816799813374898762794592886253859457887982562353867223554556835892817779797558165121978777956878964442769173716635146594158214923968723157273939836698273655451266548347949856797913866811684283623548955282353666475523272354968848329361819842343148453513436616453369287781988359165267959556692711584625275166659676362629776379485851762974367784437813524219957723511389279965621149747789868875368687396672134186998683926953968465634779784525325618514983767336876437534772643837347991822634413324689515624641155186726673477638415932185896964761116516176692415287768974993611677499299662472565338357687693397269738412391518863931458839536264993481858168165495778558772591339783186981833289568647162932495962554199872883116644383639237823952294522674272953559638167219845921551397145284388914346673214416883389453965289782978755496327313348269618427953256576552422989468534983182667456718517493162199898299117996474694964475396134626924251268924647381911121161125518616471388711221653841759911415632765643469483254856581626354165617468156538372321228543816585583451623287845611742558647488434349428772853541763169888321551462259795193898797659266519981457458628545899727793533496177198436178416364239992231199478634396544348494919889598255932786941223953171135881867898425489828255799296121188596843113385191881432555499392751962337915914429195657315888843671493159311838245716265536494496433899426421764843874837534198234336539792781578446527141962571389474482416843518139342134592988111583768127465288787519123477351488856548243951983264784253886235333586941684216257841583269698959719179145369184536521158421613933279561382368223553917615497884691718664559248716375854929665682869735688959197768681943912818755192954498859599792584176863399758635165475334651847235959355988589816238459873473734845621668885859116556389664242479143971378598641439171646695578739862168682548696975814394829595831786885198973921533619681952173128896743531176647246735891889526281666432291361527295723869973956911815611141449426383617548457776334356467815688458194698283887156949598583482236192622979992675866989161759664222976682328735886649927991485915942892762114581826697887313458785844765279454193166595998895934113977668493626528123758597956817338928187986931585427584898491971231112764342917894374969425294247972592356962659589835161386545766195944828956329191845671783139856339141682775931492963218956179948991323965288251273522447986622289935987576718493546674671263286711246468943346938823817568127997552494664439826156356542689676191199951257179296196287333496343887544752426253175717228679899412639327635421978643883473261489635962441671865781537751367631166769182915994369757337392964468817296995935969686983165746154388939149997975722425841953384696832185483365317337423974262628971599515986418518844763733625695384213468962719314669236662573574577437353853911592399643749753255773676713196654492622286779383145152877983592628629815431791182558933733841899367984942782685274951435565426952781181268966721267386361362315523393873882279757592766818921796555795996685568831265526981269175538634544868568767928578641716749871575585424338759694756788647465788113383625469895511329777146266697514521738665276298261811733382528564541529966513532651979989993962565441329574373715855819488749122828683977866848473412196143726846576924127829985589962881164975332799762679669239915592638773456279291771988467378111575895243155833266786564275799784925766522192593978771736899376383354636348488352656498979323648946788539361587479718924697759996581251592784354281875585636677652789494337115569676472952779999872163862322929764936139534839517545836956459576563634979236855618787765578636852468465276285173897665743391171567693359629384272296574679686298938921235399525823754963696533665413776833256275465948394346856753548559829656541441932326379268236682693366175426868457242744319293669153414922442133927189157888919599739327318978191319769463177826255418761983868848379143224644396628793879422479287949959664529969385167237324225942246162343576621722694272734853519926746342622641459553385893359464653442182829996988973395115739351763544638972817557542815814825786661758615694653687174595396644844292154673679663281982369542994927368142617981279768575687696251367627836819225617282859856147752737875883858288765832876383965436655761496762437452975926978135971274194274972175911612984581961958283612768271687264987672136382228755927947927785967869665774114176947836814311646133144596775551187884867217284711928187127531979445441656566987756121762255265422223577817531827825533493394969662418571872447419575334816538297285922517799461877386775685189867352769499268575529993247898779351268762869298727267929231943339142216559593947597949378483356866388866911979272371896834242226245868163876435644157383547223822765232363856193935432441962437588616846299681179662169765425475684935175195388636525179631384986687384665989283525379875585997184913984541889949463243518556697628643244134399539811489942781532627226255418765924881185382653168664774183416625762613859652847689785456848242338646542836571187827469215138596358881668256385688974967355164192638732326124515913188595136734339857998588555833548569894218982292954373355433315851636991583372886722816154785561625467143912413842146976673793725358459658633423147347286413962959116137548529738862959363827185859793922225338774958258135842992156579147194782656829273184943519646433827882698336417718599796679625671751878376792653987875931359837137278356192344525652294543674629132978887372598438723277142648281719599618393187373726432491863239885775826677677581458737426487284471784485836958489641545926643164287345511348669821676682337696672866692173911261948626677598438994762258216338482976927686856927766263634666719957251979276829772934596894747887674486543133956166477412853456727765513645469751842279885445291213431194535497776972935686361991936828561536733666512753936411357368832318194329939558847496334619482316393516528183198656796713559456396978139584981513873915325642433233426945269673597761224917968894558964825462882481159582385571431843826376363873293297714457719345293951189549381228265983632726674979756737163282774642356791467156635981653993473797826655536829474964286596411647447327314919731321965719859855639487671191756258522811643948289516245153771886341256333264384155889119139695563555867947734176918655359648494961324879255585848987981775128694538924137535196185963697575849561529747495177987913826954146797227189938332946365867761642939497599311292894549962847891262392111976276338348968157727758769587353115415379275747584781853827628416795934814559884251918422324272524971931623261812255452793889724827257841643751694611789218935328667676287618722575863364615575641342117461441177825122561966789568741474192524656345135138325214968455176186745291625676521484842575415774514694981363897161865935378715928423727255265926486794882961932877892745847932564361491457958327827828895317196495956388247844698636231925183148578781196752667771898384299411523159362498969438621968482238887748713722982894263786611795163646748757465435184391158367355135752454874215823577631177837569795635455991928213463952793346696677152416369249598334339251354274455887177824788845517767231725332179269883762284498289761927582971776683345735145645494871441686632798335689315298251423471958839169995563972791136539372924614192316867347862236159247177827957186938718665566953786991892617853852382636715638182644722786465989434722482483723941335748693597354966764858463256351762878792284935939119972969885718932714948379142923749999421379632915618112354299724424971636512366426927121395972217358761326234196886237641312354363144539866461727726179153367937575983386164249136528946691855734384925611576246552648648818955781625793681598364934662879238567758996746748219877774292382381171959373858124137828843392135126575288599945413237398433486753652732679583945252385847839514818551399966322618889229558515812721411312318727221137797768535788437937283594895658672897534712641177314728124453887939134432133982123295686228677251691697439466789321777487388362769335824818149362983412756332583726385461394189459949926372875838884931756487931925437636515714897227536613779564718614479266129591182872335954618338918766916327878644234729185869134718661866697986915313493949541489831968316593714445591635224386429367433859488335479269868495337632631224425898635922774298433763815667791241698751329821241577869745454238755774741289862874514865776635444644475495692845217447655692125127732895973489116786618252564624439797939884667737827662193349613181998912316495847535586565356292222245426188341611855434199971789675321345227494239459386152355758975989175376489713815399187124545723198915164138911858744937929245815722927435923668968594122484224685575557977723839774172524983485213123728776222323295655662615716279694273783645729428957112616424317611884242535336352158478384958613722486399527967755592353637567587736555734375887189427183528278775816877951737756289922917313528111273977864766936464858415678755339173555687353725251567242597613831786764527662731368272665285252742823862271486896736799247151917868729997662425766559799647922974962842994288627244484768722892549357141891189898693878968347756485284344189699457894826768894278981523968239527825359997692192819889489165845687765327652375576675993596485228744382554544474189582979267649552383862468443258643354179433624377582599479364596448261579795893278882298513584677895983535937559661932962166621486418416267683844668852839559245588816316838165424141517842356949387548498839671253843967981892868981579313928442187817386882574285778873527156328673665224817441642767282791139223592963728382866896815714517566997391719842186328492866898426752799631783818691763924682523549688595468793318324457189841565911325148423763167812334825438754298784882781215889819996466298521375299989932857692667753625971645655172493915451969353386933499893858149223725849638938848532556685299954448568686696282631175112427981936721857661576548396878796428464639471425551285369773818156644822636998775994648189248339779294843235227248367993787379552455618248349766718895829492493548463261823644644354679358572223919384891547725391219585451154921885695942295296491682688397568265852469684279531652785719794147424345848444447854466326737778125984969915522564557935161757173561843412225686616887697267816488674897947239934586746651674738353321771716915127785579259916792182587331938692496225878743175829398369959859883446855872415846558984679488484781886467353559899844325655941488934421868266383786352491531269443965675164271739339782854557977934914369195198666229371219479566687153595681972938344898533229286526648977615196877977889547449876515543964736163524713589812376624757164937321945338894189678544392978968468618883941121446481876416561712943974558486753344254835583886559259799242156648337871873487942584631566521719717358992398289893398182859771396244534562369979127167586694344253711823249446983521725877342892547258927852958995199482271977719342146281743212737984819788465736355879992788397849481119467569529855113211379836189768146621981685755461249619697172696412367639878313584964446492687967769394549242784627674191852852541565627786838223769913584859813286497988764379668756182388986438773822348349448238173256846659872666954877213754462356335987211654218971532858511598861842284768928699373823623992642756543713594539522442558331826117873694297148933317778479764468539728963411539867541882935786846547679813696427141455227546739197598218752623829169817311695752937964744476713553856659914229732193625626164488196456275891379154237551789276239891456117552372292268626797144289961477289312526352543725718648325173121225414279227339945858743582189776481232656683313284284972326613359234816617364517792337169628279593929278528244328877299461242973963378846595867632233782765823327739926485951741478479486233837393414918586674787286792853257368639356557484989457843357535871991358351624442843914775537759398317861772123594583526372253796731876954992783732769484982932989631459388125356289399464821389717369955774427344574316977948652411132351334851851827669514247322859328492798356546154576974296492156882714966262627456876314617922356922714595843766784886832716679369129925334353193511132999711598932518651929918476713111583877399218759643891163663276992384555685784823768476935187588637276346316822783743587785246269756449557944478316857388586649935577815393982425851155378388999998747428198626136896493255351571567122834562639422738959188799439414389273584959311375173516375339839411634588412113123821586796293993656885111597753343183499418447626619837371979218914455664498373185578657711713473492843641643742417637639974668832154819877492187883953868888752249188799581799429745612713959997997427567257251425376522326846593946429527676275299314837187193779568698867729896687193266784295229926192227548613218267453868813474185687179949124154529938721686336735219692276529567296978798596663776132227532336332599272883653722788925382324397386763235136745378396223832155932194675712964989964275692773236615257787897341989243276122398625868551682784858284674953217511498377479914144765313474857896494764672188264662283999942317843837889554296956125454339137676749722898977827978689899556265916275818593186614286357236454724515867643456522932375355915737192924587547523782528844868283638627359387942357696839625898522417285946792814676169589279565489958995794747588414382982744663816492497546991584644771755649529746955534615212623763411651994347782958556841325666651679539143667851384952477148993825911759517599437458598154667199295925779686575477967722179191867672381738579157389989359484263461216356334469118352234169779449452663327813683995475828677425868411657199697396539275697619555826592757779639467645612788356955816425943725453474986481885664156916171835875966812595352286447599958766396823184286113826627929358175593515933628894234996877218478535798322348922331386554564995174586692876816938652692118798148192513187643713325126257932738875658976982361457381428212735355588613678917586237529989344997156781128643924411185198599754669668799549931759136857526255143581238687792159143567567958919856461279458824421273238453946112488167586133471157441986292549535388685485849352139898927818797718441573431998112338447921699261119777891628455158861259649244663681485678121665272558941448826838722974492566958434814525118682929259313778335956873932147627576791372517865393823673533437857793747768922443252672192721286438862348388833566493436594719727968843911472596726384855831671765913665588285327423748361496897849628536724122714776994729123977627588288886684918866477821683261218333928397398132983315736542299672111173971251869765225329225574787322879294515495239127855173525291129497465478123615573463287943442737831226128221963189211374152196583178639244884772233488872374148686261973967873128228528468697139473173967166993248513933932438826558741225925655137213664385879425457247798544784317259789918958141815398569336665829778237558741137943599448417164721658752413922685897587932219214458497661193439253581422969338983796465254735516898163785865813849923762167453775811254765919848849857886168123678411758442883823148652657145741728667197223542918364855231269468673686571794358473232896616783782291525362495292894353525619968899266472924938455679791393796753593227542911739736699448152379642357576813318936364687448715148741465428275498887694911645283558992678173841852598438341484714933232625295341296618655716562595244154445962512417291725692795162352298636837191986163473996785441528714643638785677237598555519879958989411432235986444114745388588426995466974345665798291199667475984334267258781684788676871517345322288135981153665864374154315289631999688849375546451931627453562765431116484391989133485318745837198195126583129532167758237275992145865682448927466646977332834444346359477848222496924782942964897557145797354723255887168868341645469448373364447577643596294426358239599422881265252159133715996981256175397935521491933821282475999892223829222944871649962786371489454677674322963426355776137965759415578485274433497777374278714346665384819356966186335957416446336996949898776198891648813479598469186785793488967719881365349756183716999427456618661157285199354784784836846667596126515464653218418853718538276564696953383476982198654591967881663412717785379796253297739859636659242418565422844388198727295552352258282382526266798381841714859437589267486754871127962943817216217799395674489296782335713247189454959214862599334913497767675987389194163269141793468811523655719825614523939564234541294862476678435249565834585622559468532285446139954723453221581287894619976273479673165662365931798517543762655838638152344636458895844216132341139148242665342861486443165658718888926516246657547277428129125355528613539416425472769629576461847694686737842715528846916942332172854886291578829165735684868758943491365386664842239456192614763757396856915382539692598139696741366789228127728124343631784127585372643134383517377747162437993278572784133985177933336292375642249343661324845354816329874132242177567439256971533631893169323645278999817765832512643766336627119985471368711168577618694462689315769386739482886193634325253539873159469439741119783464424637683384715263482479375459244771851113997214688784731981877869414814878623844114322761876287893113294488496188363712658143953317965489418198211139293473532615134456128877231134872253562626977589563481991648898328429271546338866546694366319256851594519491432424899671891886127666333845653619779893484562217784249483333125598939724981871146711369713125762528534146432765146435378223383283821271279574665983855812597926458563445747183921295964763849728245765827523647996434245783518274429523475228338339327631839853257315458428411333223665996227624561956826244922114617531971911568486139154464897984438672927672243821281465827211442896164687582844664282946615452969238985477998749283962825998642571922556161735368783845658822691921735367567423477646899926878438151318268446791965965574922311425937538255375992239159815575179362327521483195872628736169254757254466351465414648471525936822114797977869859461267623882317678566798923541236952394972796741449444456569428944834871434329975136544864741155836445355471858834393693747971422983325683329816116589699351128686124782985991498633653154722241787829439567192676269418775537122523429441279923285435843426331382276296392945941999934768565535786917193771442981215199884713772817752388472172495817857788256914494715377546851497786849741818252317317834293538332117291763694292665732183145825129757221446671451561385418138519773277899831653671555439134215331626354356358396976979469313659339175317736233621598737885151549438372619228699238177348727173547517783759369168283348976259643424821317319799879198118144724475387594578428469712333772349663959893218419739956441775683892133798796448858116629492547749458193355715752472183486432427925476981592664129751517945426569884371872643131228581997531858136544949966344687712135835423887651224734773785968324238868159318592427656382399517869774695277837663326412187681922757732779517963567692236382978479894343347648694913674519927681769649564995918249522738327266848915948739834539389914915396933247495543453728361812386918374295559837485358589868639773393471622688144217239652169886138288679924888999243762951117653434714546198228763195943673459577696332313651119155952245428772275876177227688196694973371388527118892545356766275468262738756769337149622484561477292575793456796367213562357228538934725423461548946194425151143449946484279785793659732942728723532959664776496268838835179669183133439486791961969362829322593266986847668641393947257551394746384142962845154746477243981415864958574216728183865536587686273421392164429866243317867412798441699856777236473136836128541473238378778297791737497564954472848132289339914543136163284675737789256553522287167718976529773819425377441641695666396895214629399835395332343496777687486863469333776861229962291895189263112491542978637922336687821377455255634216732356157343926815743764178795945639711816262272233316574722139158719716487365496863637388757286213466727868776819429558594461827224144841436118351128296246842368789886834853528118638636629685642115611663491232431746226474775293596596593628484199676645213441312754916279748524981226366438856774351177282381363679396333353631518875455721941553678114496687387658485272439883478783396562316412346922494855497217732546297582177129574137249951669576462718291295759724595336116771321118629563134123999296612279844948538177254133862593882893179516832832742628534895882366956541527496241317852836659755919942215721922995417436427981516463642464928988987797236893597124173215483429445211873657136835311431581325847753977497285767921333815162887423831486327531924712833837954893152828881458851264959736968845641329234395121163256552941913266396814957742412161911634287947498884472472417282986499191563729181691744139836138897721111679736665618344857515699426622752454235487726591688273272898768978244952183865858581861219754441645614951622858552964555347593216898479692568965872628184472957861685224278723936514574142377554548442648944655655274251933896279567826883616975619711163772186549468618585691372779484325595372573576153525117424789198588523749289865461774994816418192481429612157772447214436548525656476945511784777681769328149322926999376637422384362179111564925929971969477815342777391997743684838228915784914297925798425977198472971535424837951785618458191688159746817976585489939752221846315798568298555161334645738334818466558231848445579732563888448798789886763966369442223736691565393457234734564575191666996426534949788254486414639447263631948597579959496754211587494166128213954777424967334812373525314236275835138228391178769914358213294613967282357285844485895549893146579965893344573874988965398752518429248688729395782175971347574178198112316698329886675465748664393187476423457867126957758895583346477479222916161157164874882298286163332715527137813321562744788963187447379892958391396918748135696133719859564348872131558957888571497731598442285318324313539417894316646686272878932774816685982199243136425291238116342748389514161968336757322158421842339742366739716679868121685127123732487989575564939883273317449586373177963177638642132257274929349884968771855159233238662499782164131584488941584479827652458883637572654125413781457596885531897273371763591549217484787414285994168235711413783168947749773927649832721238596975358651123873788654736569513621794717977165621532645868724895694352316775269933138866667218532235278725962861197421238633161735116142872728436952493321728913654567851356324351199444619986896355165515848263867395694341384555758346543958157669526536783426245438699348535357466891921758236475748332748329373711377643422213612595359587175495796139611774846981922699225178663949646276556317756361574286849954946411389628784893512779292491514492793112645854856737169475522771334751472636522754484674768885488728956422592286857751279368289389296643355278754796261513894871284221645839167577526872299133955617166966933113628438279432596839242556363274494376685382887565153497557481237538536895624398377848626574884533544223782341312584942164416741261152888754792839718635225486495797699856569674998284666445499556547933332963348989227976313352338282356453333652511525577561977433289671872519912456877749996214955559751937147242874577968236957888383866717969797645928793361437845796356343326356631674587487374117248989966678564478957638855839175864397253118212164554244167719373658272827692364878554391423887967263674269743754469475826625271659832897175776146317585928449667948186649963422578933832143265983289788453342528285825737786154753956246857456442999754555245882155896995139152993827811889325165149811149189834627285274297586471222868895668728116861368889649248114493729367832146529532642641461145674488653316389234935296898438474176352986288117986119913597526654396764921514735791232797828383888797473166141874567483555594616799622465414961874929743567623359176372784476793628666196483548228829937547144126322466128295274616926773514814448887121447824948994863581584314224718412956979496759958367746247816924914867363495158335239755144372573621949588435779871824956744821766844811573813261479544249648299918461819919791455474995281898461377428166192297527474587691527222471817763493496566128525769926664561846113255286317545879747955938225558145569291345782557892177135359647885966931575711167285976973292769511232934445725584861882566655282634391545629332684841283437749851877679679631937764326666227724226658295736628954468629947898599734454195966512938148736648317253665554134124355386354581125654542742658699182662482966441157176961833279871857789783611575974473396765493694149188278493585174338864825627464953839881845931345652972338957978372542615349849264738978777654549964367573466686287351991523643346473653122171299325135514658884495844388491295729331717285736542167352981484845478335317894551247221566476964426595926318491697881936893865236339679394989442764817214182357639548441951976411227269951988736951527212449269367955962545379936834426554994635765243834841485463846897258711664933371141494457658151953283522834672287832891519647681591676767141552944814461291429525786622981413973968887683467641791813956839584665874812933556774137477633954993623396318971139774319345285896859153493446265773186334265783133235678376257478398344638686475897881863297247384696231595694299384592965426443969359176215538738883418992916997649673299298324268539771967977458697211833655248889769457211396833171314569927688258714897946512575412174188987886724992388493545718629274663916384459389441669531274243186364856626193866941359519134928592384998746472449787948185375731363347685193794795412334496989711822954164691666186538672346624457349944877786641616377127475979984272359735365534397257884444326538774555994889673681783316958689426333111271384855169269693231156347451641149537883648393595169567983748473139287858322777834838937825398134487666789786774519559957523489653965849834287412651191481496264244213762446268814924593433279842735545973199243716141434986155947327727111644419359986626343528153645634311139499543497899295266716979837589765762588115363854486811889855581998769655519452642242173667414947474997338253279934541248178667658994139752489441731425226869623494579887282578911653853692478922364654179891343499275738869511685734848379338655723538594776117734747935142862359567853977354593791533721278635799748934254182122373431749449388126124237977591496872624532172646489653827918965624573624294522593783115462292462123696695581587753362353849175599647571727872672611598764935182874432286915626696192746846787713133467525724287539859883572892982918987354743221898923447961994829682836397635656983156664538823819931832267124292646914567938716831667211717724925252233553953739752265764157317877821464422657945442349186814587426181772124413555514794965291462182986259656842857983124263757172671277665488497998555646938941356444451845549161646859194697191753619943397674657225742895215758935453956998326841317386356758627324126865511911564685185315589686397757246732885395491717113211595796596377953539936451912456488982828898662284139822478587626756898878532226889551539653518746489394884554113137144946933254489264698545477323119696524796148792345369796682223627454527228699573127883939648965952871169427765718989947491489784528994428114567637657822975394276414294683156975245615686336375659362268911337316833615969653983335834321784427996929398574813743853652487935795938973826764878769963578719127256831923384832584492285178724337343845877253891724672824834587432717924929196324163917627845422198828521332981132729286853691874726694799699734154125819959641148128122648591914689945676849253891658354562645745143715684659426758112956852129711873179936761242479775844735715825976428778313519695511369237623218765916539285149887435795666388921339189598249713818937189774197472886814974628678774898186664538983891483253323549978912679495459813675588978261529948763988953866592863954866196188581925293498828619772535964657823878715884853113992431257837834499895541638227371476313122727867866771532312646949178363954367699597719316645896272881814186325288845152232786528475624697797133948473363486511494268775144334879986398447131427729144639784943877236484684472317338891492959689676263832945656912726475462479964745779974822135522624272574719854898424317414314439921677914823685274221442658513676779285961784227897736373416845522648629656995196465518298197335568978296797316667315541282758726479844883988441646924615379637327137236189866388737818989812394784456242644988126162857866652844527521113289974169188358864379948855266967717934384774385383214754636883193822969134741838142497997316183534979732451773316555874786699458279346972213187667946895497684217938895251328147599172133563178741575375633396674686418551646186496346437325168845267259163186462693648625434499119892268182375356853437283227412715311867517187434752496249286662521711678774464937915456778646266712293498671326299969857938114643198685466769292718751773755392927767877374266924366973599728855123285656732866148496159741492636653563565193771217833522915467592935281419975499788695819925188152162471293988974436958294628623287715454544984778734689386952549917528546253558182922418899627874283768876358295173745819397678693268669635248744494666984414326618778634627431248113954338787532685445353726423985677132283879695524489857886597752797135946499863582399861614864759297196136856813464164985784246837855262556278328468449246556418295792791426728628325956466686287962894585599127165269287376216627798533532738526411536656138749555874152217187484896492386622359118988579529793327355111327661246746459953389278687249795228886422867123366247838475528657434565878584334919927453132572658351714358865386778135414356868779831567789288666244453124924699429538832344897265313515872899952198681616792943862973387263585678489244892958636983197685293235876771217972448523374272179188274241838777566213574658273885783478881295925934886277331912693437468917658935773949546474962687543755218869293346222763751754887985179332355584214693642744719294294653418999455419826255364434759265116486121278714748511143878641988577116294461151323137938628424727547261164881332718394871449565958499827377337537686495657184594818164431978395114953899741331272557229794394777619378448118841872381581376953954465914591753963684786485135115741981713932872424185418789326173283798673266438665814892582382552816549382338383842273243965914611214149532357894772244942997317297925345796374877877952942878597165184977164884179481938552188755619144682634874975145449317432432228519518797333543718728643936114743387896631449511829851252611112185966591998427766899131277489347242757763726977796989517823319498886955287762795745297758862299529345384252677747342685437492638294955241443654386569862457155814513968257142221636152631425248145773255327252972251889778573479997815831764244913947436857376299998672554588918376118993331535297287292278457217697155429694718816478523426967556335888721777263629411645752198786223569345948179687312764388365146218799896467937258147579956232293277726448943691613115284746291968535754571864263447335344693939294788185221752833952985379247323538756642266855378417937886645319136735139366151635377389156673223692843669596194843513615847769777397266586881484217748194726434286771153913627488369467129463474737436887552122969939691498713295518412745691559979874291151188389595161676146346291346872924799165126964837338951349856721681712379892876322883769436797552579423983377433378422341266581719626389973335729852224643316625617171263696377327762967917759715174289518713473711727777448488277484962273773335224963556257887772727433492116812262785446252729583652396679266561382875655536934838171562929819798817188531766281458955673775977575628856627991846981822696885558921749911125347356966553538553352861841487144389288839257267654346787444652397787876684198687591794892968947679692471575179333646723658112269274259396411878862155168311564137599497751489858865489264438865687712545592986235293583142134584666196229547967186942313978494661218183636888383475632914562154173611863989234178836939484585388452486754761886997835245945822972715897833639911346888489469935538116548441347744763631879842871695614167965345569165781274559891283827442139269719386861975645587443916437436277687993672957497533429464391731464958855127178694432798523659155496875179133699465443995317991978974787576527723261968653687281795777748983951658167688175847273852375143955344892578767485341226638665449364668121598854988774185754276889692922561714494891877969378537683568652793299635457559186839514924474654735575373926873768164581939841826584834956753417636251928876916437659865492112896969154521235859147732513662295631383289899322623759333185583819796279811128766194539939896623249824811794112744636849499779959598683925686851938246262146321169648927828914515848427545193758926865322579462756528183712137795492391927978233865949589372134338446619193236382464118655466227495615824198194195263585518757968826744591321873962254527341319456877491969961886431157829484187995858888228522415581789696269812115297566394653987151182329996475194862632199496932726849891799933547326218951456638614622219745123321423774715776783538524276679618826496487537997637915456452977319993228561412961411657743492987244619337954597279252499394819179446542818214484482598285252859576638629546871887299655385718638639166844879175249669338731985684254767513445211896786821159444612298934396567673176918499138849216722558282685989469952573578926577411788442426856828691375653543322949528331871968528726825491819492956387286766471479437219278568625632592753869453891689684988392386455685435398129894668691847163441749799297817399784218797236288464168168562216778845181492245282953311778183713796912494977499751859489697541524941426448395183968995955717524854129732886656924832771662586496626731452852359822584117971516123451383951725829631558727564933264271441719314731896615488757814497612116914521522688388365739536245878133227278172511848115287116189541263677466567962322589191748767432612382333514589126821287618797471532946816813573943945224683538598983948468361989989999832848721629725625496968712994454976784635574435977161576192869659769556146986511765296489611228377333552659276553341179974888771438828519341896396933364868665399357877871836622667843177114961787584346731541665652343753629667877893947974319923215356217496317896369832731226952416348746877882957522855443764877873551634236459178498296979985769935641133641793433738941286268984288386754416966148121642571887821699754528762439869123242449195721462244485194896246577668574942589474384395285614746755136739516846477193848779482143494151457954998544827328622355869931916463572138399548597566751971865246853787277619581354878697563975812763628628743124937295447688838426762684468924988765445996672354588176736135624455368998429266817766317594683665379481752483539453462675215458892158572552781439997732464391183996994728468897895247912197753389998216549674459941252418847587929773169576268939226661254361243911138822874279473151926259914877589471514433586621583937193467772158834716495697172385849525322584529967527771251289649911467295228615865763328779923569784984634225248821167896584199749463162892554237733976565687823123395359926345975866742939721187764575512854621244691388754298176766656518269227499719782649722496653245657337972145666821768597314785665666386631518425577993898648277355333358121369979159548617244394917715878617256673625889958473496214763838232949482397858259783176279357619639227275217668611896896873711859382531896342515744218911918186464639591379382168734491792816153825512811497857779441269737887752549227388117815317645977932592853598744972472382171694126538118172925885334228565883618465729765581567571845138889956657666782183926487375271764438397876528994384446171997647547194311955581956462627949542928342863475886324486972796614561519928973629696826997649389195642746637539833844195435519273471866722655777465418338453968593514892968166381198112825736571538442852531894873695954869991295466663363777895596853366567936219769863614596963611889719242627277525365995587672766612448515147762457558955783497654972439525615175949781267132631765591279887937695582139816688845634422688628592172977924724796854699327441832946171628351767738845462239165698579973283653279219466942544699894574733351695525432825155285829161396458118869168315147513153275436385226138284474159532457479285874445752746964715587979278421917664565482664872473745765318292283418532185378954838975434189853119445389346538845181889522781292324475247288785761724771347618669418278778153311925974677877391165328852925452891179311488218767221819644365842837394421433395816727958946953822339162259721954917532196385998611466721462572499836738378137465147421533317865468325115975857886993339388129794631434363424183717543244739479976499129213634117281173128715732615396592549534895849119741837589763398973946168773837993267314464319739973132765773134821987513175714348493823769931563744426114981682346688448241213389866457572695447357353385683755721675717619332347544211586511547983511493956568652365512528375644859349622133668324897465463465649917887985696548888527498897647539387786899282689214267595411975419964787788797238575388461373465227866551249634653579367878757486323187616572782978311769456328685754546676641911961877649347686274531249127215279238613834751389963183745139866958866534515876495971995555175115141299279258695886127896948791436646468524632742579871127422354767469896378199961614239895725548428976463388782962845584664467642972192153895228274282251963858389832776699592939276675347725149672241222966237633817855362352267639569658245977199369178871659166388738677419466879195269693993236222567284256711484375794463352334388699266978941292337431673571919249432581751855115783155957217143621514134149937831194632295552887641643753242268219533329398753846178129742834932787364279823454316336594197479249836944413186174163321346579478955452995461276395954596724562472186966616614194212167436446894687654785685337674619577588985176654698646646723597859769193894278945961559236734973472644288772499597849516984915994844635237124865814443995636362713377651733592833879812533316686946466947642967673928641861897751793528692931474242536546935745932824723987465634424672926536581688754596863644169132798676869681723731228598462678979867498759845718784575855823787851837239179396854225369883898955483938131849743172832567371428345163171793944496578928568552428781126628368194845854668319328542366967648562968779993465423958553796714923933289227184824363229132699857578747792746994746544665827228858816285597186197269758491551853798355425619981874364699276957222271386418544351322261698393421322737499762289226143634876716997691864429998659856725613794745572765231364656525628488869828659252795172491568855679752574528199832892773869274995187458613363695886656636815278195253438678717383672638735852866277324264386515776652562285192325159118549877473844134125585928173732813389392176863959315796787935993847933946432297378448966633269281364676286864967333168574636954241164636653242883794294397693617747611295997758788282598635559889451848496153986691215859145256486729151853263699512788696568196283897249137759744958189169849647567132443673219767937431898314864412351762556497298152533743159967797988289537753239939389943924895235296366757227761566595667138115553569541259899154983719199493934873722552428768872223876542618182298282439335723616614743661528417913983266899527547452737399198121537425132851415927319291125889615974913561616577855349658879639839258292832894622543197776633923889961717838266127871773477222863318497594414725545149551827781927864644144643984347159944999569293556764541749351648343254245736853215616896319633685111124541979439458946584176855282517824145739552828285451555548643657559331668257263824833116392757451714861266499745159146927542197178869992666576881487597881847573338926741948959558716529146443679192195313244152152536423394735598818976549389628136567844187963132729469784423611611756264956574935699537956388941125685526737891854324514585727783362599174254528852587226645313499686268597767576385219131313247796796943735761213994845122978111576524368287479823789452712677422496977286528334733475894824649164766511951361292789764669168329895527894885822587288194971986265865229292141766791468194349445976524241664953563629799833557311258932615455498377617523556438739263724228523664885614726574157766349353564667765133152534725861927368979764684685688464165861248677378553164467481783623423318464452444192828165615343292279368956196914492637295466613586578243737186485841364253926725788964756921977168755677739844292625962664585253738557932842628959125196114442198362873226387811214398378485337894297684948589475597887774291188169929821512626184131399335468798694287438999139377935551688248656933492663688887461631998393252228179748966434299897589125152279467821135542711493194134269468469646981936958829454356698677256837973898778285634259231272441664955953736442194381192967686811811561675397517772575723183632316576816856552882426111352347226846593419288481127421866855561773216179732561324542237166321266826842886172343662854925552295767741414248368398187548883779533129781895214344859948381434876466638258859557456324138698168247168834456459343335629694574529612215347459867663273598722532921731739465645425888499413351449118866225372969589575299233594656656959788585513596991819717867292727218139823799289985257576862618346525775277194396889828414492288983695881951763468465788359787542228539151533969679718885668967644883386811575794775186585357165697132838168357677766912163619967668545277969718233827298981851514662745386866321755862781117786136952551778699346558763193984317285672364919934832874212389752481261361877538651567577385331194856813687223232611986179584974233815896898469663264853545645759141488284791312963645587173845279597785298949698439353526683732399987219696918161158162219638313657949126712723787656968119965392747132545894569574651268795629491236621186298317743772982797853748153564527435945128972888461371272132273681532761948263796234413735741541735866727896241587479868927913393834426969461481252867927226935889541492598929682894836784259385495743243584257327246489769884353462221542198755298465539252378159569321484292771729912971921943238992123793858794419835678987818614742828831517297767844345592969779337559885452817931297162345194162765432592261773693974836152975198268546574775415756733194821755357884429618762487672869245493699456877497382974554448655372869931391691991723457148996233245844868267478923967112118171824747514259283667985465949648381951993662444323329739987443485232918884563179538995961231496268133735977382121576871915984137128659553966866566974499815995992948654129643219539345737149285494878159979146473284962959289467664536416473682459579924768555634621632511845536996553516144334264847647897356387725689248299122198678273734135787156292169635974463881139789698382393883456827355676356928865913854527275857198559747997758565629992579398459639437462174914139291543126946555924369492356666539235447771858848834523715325362162934687155594363722893773734912225367256993799974711125885479427138428466746559646596982868647312727352661893967681947617356726821956118463419412431942158761459323339266587933993162798457557933536889897199776313321865897681521445398568675832354687381332357711175377219489182714888137827853953634416495952693468842482538593431724356166433116438248545239723987767595899851173247668656897236966777896339699734764963687625584983145838544716263695722979666338837921562319636134925363364828848735556448749795639425749592562528733357577473649627319536436848553534134996772996319193834214573786883535692285468764999494489946143821458861549828448789614185241786213452926121484358834141366892733183781971789958277365624661625847775145585695845956358394144476599897987365355514142146492869576567413526548596894582692767731479673182262792689961515927678667972858695322842125951225525796823979559872984444864226646971845235255348745548374419567276475117916711764886775443914895767685172182852287526522113219729357358874566479388576614927744637354134819319236111563174379426422974535295182855487289535285481198156558313285552386837646665474489698526152843885892523828638348472191121795593838615399141866253963465419454911318874558666334562696969688395338568526599421192476156464198299597873314771572955273316662241782492689887414617621628672687175889531323337646297125228551585455966118978168412669768536188599195128478566218626813294511845846991329377352794136538443681647148361448515822767443677939444276518159474211786716743163893325255669275428633972996112978114366466883438344834699139648567958836659632178472897726366498779435258662727441593838655735154628685366271982957559796632466261453951888185859618735524368725977598866663673341568847597785881751541369683642643952436179515978693179219136996449321441548182894758578599832222431983773254927227439914483815815839233971137188834826396878427882925142333152845842675476461469379448559887811472666639482811139374713286749478924342921487737322467744996868696385255878364268146523797829453958473842564839377643993146882566448383839886733631647646739278111739496322939551226293344746942584931526176932671389135571489751399847451863394175418397248259849449832633621485571413786537681981373394494283991327367913152275575487189657842237668384364992488567782589348663849285698319786348934612293975521678316956755565996279465379584157297281339342351292421224634287971619764126446285297493266942433431255135868959576316257571772747539576976947478284717574882868431727516567111752797999456921746865478955586985954516231368197411746256352827586847571928617738883488344545842234529464886254152551984981977176592525957536868673173875225186683367216259938862271226957659343556482429479444487191194444583769598212949782723641182758295743858987829572178745976657613495741915853688724688443753889995683477914621777461716539153939937241744833461527686877696435127626718448598524396175484392414366277486959247216943958968283558971219336687258334695399646884324246518521276325447825213964647212273714898975115699584322896681369144178165367746983934299948984158725467611347952665833112987654782957534516839989289585329275977786713257956825634545599688188552989938692392653939448512593151143139375986913297694128428289565835367799167525198963987767469465777361884795593242668481483989631518796991857657275138597842572732783225213667847136428615845119477723969537741847499915613455923289533569635889355152986984185567285797966792825846437556149328728984731438364432433484843877146285284729227355979935662737997175827234837865966587718693496476885993758449585452881889448549611526874454434322356685746485784275763399259892952551645575459122481589983997491375582338616585926269965954458157554769468122586377584124434338814719616514844845587699967326217658367624989312236975253242972122565214854598474424774422376176325391662786676959734756447323842696168895235492618286515778894484244136246868892478686671317315422177745167382669753333992874888894894339496177879175241889851175993816482113994787524191815854853551754548991196433594367671498789715517617656549888479934118863785152221191548216547555279599558276714398958138862778614923861757541137665988699841546931959476696479678447968444458757584488658555447893165926847199247645959999214274619347575244361586286317283956714413171476981423641941888918821698916839676177345856373359769824347676478831548112828892872788394174553779131451725428233439128552474821362384887829319496773284791757623293778168143427575252966891936446555845633274595145562643325576975321845237673887471813873631543355494766656327747794691582174242678444873545892817931769521318129912991386985558425714495336864883677242724764914721752836225763723546489578573168486134823795963445152957453989955314383551472798397335734546617445669977812492136798583532765894416892536591975452691786796875649861639878578688661294285978569615987141775663579357522248249118776658924919726574124991339657362284998467682677667542161567148813194342515982737492662725956683198354738495464938181192753856475718961826787343915729856966568223877499591694887979136692443432726457594862779477129717186729177495145276477862455172665341727859659592675353935725183453794877584458638594715181457719698384443912782386948534421644914499678749879439582732258684891742181483965815438383995777927766118544416419473611253456689555823839381225956753259624774998894372395192846824973996326137531459634416853831439584734585426546352272592512242967958834364542918918821262664647233877254525995446975215654762682877238661648745485435228944837473483962374211379762615945751953287335675938361131376957368196177358794494933362512361913741722654878174557355124412434239772435499484261793369629598976868199494993334716487353411963137479892846792553271129547976134953342182768861553575589563625555829484492462685697283954484419226948648185999741515785959143496862459926465777828736997833168152696269514915264736792783416926631356377939961638431626225242753934924932225984678382134155939431969124574988963875854341322391636767787856487682712691331252474965723468852317126611363391862889668337555383241584757685838713993891251269886294536232571292884513146325919964858922124142699258488648538314564532533636829266951421632969848513185727397721737362477635392445638787689612595892563177569661117711845968691736532929776924679763263123392832912896266359852792132884983261423178341517531864152481989949586255287755987971211156713196719366132697922484285184966379174475476119899943775191473923953597426653635813427928332439475973482616196115856549136734572391966916659178694987536372273592491439365846931513783642997778842688824924224837678393698572452274864782147189385868231928425644377155972729318133759696173733383426811412611376935135248179745347874814517922334244768515485997355159237825234448317197857875642783355833429112161311822444246494352729168538447916349951281751226834656858792639298781481839867821935536724798832447462488326369729814222581565566358927689876159859866999493114827527837866593142415284914159411333568714668981731118329142546496446779918135549933479257212673197448342432473797365437559645543895763152491124238576989261398523772813169994369484248883149541844998379984962386517462131368355264853233377433582945755458975378874262187857818998677676571329544915478886945874892364549227454719677959685687644964643474548646685256576165214623118721777572264483977136881139719381994272772717658835756255858745189947136526618599939197896554864362955264546414778595747369285483799499642648846736963391953161825145313839777197445637542986468744885914241948999946493594675431733451864356564945589395973159843514369963954145296371475699657624599598732264633137311993477714437396333869887538325499211342192178686716241616565687283928227217174788791812935234228147795234746851875177962374754928791155188522322117173895466889838346821789742231662759731161483672866184672221831275389322496214583372149237794673837199943519599769842634654677373665662125353948355348915492111188529623332238562251626312391562631579667981429958391948925225537854751783967685373743954257635626997498188456641936834877569356765953646629321993937596918259334973156887554375896636325486183869685552698144763579889873545936626585579582824194915743684836764466656366564561391382717769239886998974884485527175833176691714811755959793665966871746836447559497329697871715659363229276715589655286869367962312515544648569765719431591838935574216776949493571566438729276793634529382844469622935421723697429674219231218591424216884623691346458317466534674896178347244883977181369415868897777921821733326149123672357842354687297899551447329293624981929828652259688613799577372424824527231581399725554714876593654776675827399259118579726834365154337174934676935354319738599849235995672838938491971329184119156938699183718951949253783365316556671168784114781969463562977851539362924372459688356164214844665287784636218134511589367711841739218911425465844753659781782925415165633192941583798916769757612578825389716535751231166958757888659759311112962191323818721973233599338998354567138472426492175149358671947972518913129837466775834798211994941717386291288887932259296994765594287459114347375995414753198591187981612442924514557467994497953779378484726681873778998119233843332867679524724689633682434769858249951177951941653973178682631697937918331441119534319687372137268475937259885839458339822347397955949274911974785398188645391179679986794343539821279428129915755293399835952416787499544465896916714575495849246662551449119638725145355963952953917714582743717526238418478517895857792236868477139261675769364776548929669735395117159899879272562164661737899228561724761649442764852221569753276374528371279743884944774464476374155754129926537751618363833148368383622893193788633358424746372191867251987438239759187196737272162695427542964789371385644464885678274588593287285358531452762327579992475182164691655555995563591797846185624665838277624442414264662176743669538541279774677115852888994988683474784112836563296967665112774887487646779538118412579764381764864999981737968149743482569687734664257261928985691585836592216465349937286772378234935954649244718768229756179496982859657596538344727644777935519883956299683677341427331848876168542288843518982757517551553465336679274477881925896173486813231166158852761992236674965242348658278247831957657818241945138428338589669436248894488665979451943485198239394737261868357439981495887876835525921571863895668384394187998268257253349213327155879577576144385567257998171377466321911569968348289926378975656358972152495376565532128539533346346469546318523182978869431946415343781167294239856566631124855265728418173716656678743892757972661439832277275246961979795942246688429746451284849365533949473678694179359191194951169112598217879865197494741823445266779329238334894944377312293311143661623254242118932691828828372225252566377624849468726761555489498623379256678444867585149134535895544728318354355885419952667773186958533978233719361586558943532966468948567916581545621914154254629166264996496919551971361179735955548795549244292771144844442692538315368178325745791386444352443584998484825386199877526174981656775763168641315428332976694947782697642511225334891837528263682214772938591684232992418599858559276851818263926526976247938787855771876656776363843539643597174992485857125634884486918419832799746369915657858977364124394817419597238373348911715391995855532589318643752732235164544427262226765771626389915529779271123836562635974685174235725754197923752665875717743964458179388347849542231537988192832661217485282924788681757293379261411418516297952923638416767353976481765291325745513669442842741864886685751791869329786851713282844735257466178829847452253928369365988688897694736547946492586562985327496469399173181113246927319395151496433498489348565167438994358743681122993849262762632455117184938762959969654515756333676723655126268741878564663452565556764274261957578365554822863895982789824584685739457881763646742572563348474226711665373772155724921615669398236861999982569532258738676872928397866796476441616981388765943281958437644697414715841452713411987663323618276937439192443992979415595677771838137529131671848853581644927433989435838527588239949775848398567228458153795176134828428218498849543243546976678814725398853793789124881168742592353148166759851847172532556952421376979549315796546721842857235798687386564374777882613546656323469773989589449957884742325387962791652882451427415433291319323259852488737824259452196544168448189614723592279768426485767898725266889258472727818336641197866293996136616127547188867475393447842942418739255861765349123392161313722847559723633563914115294754378865829974859719347453461557474728361477697366816317766839747268171677671177998289977958371421924527616718452525284499624278891735928919448733636985911221932381566753862962928643667478316837121828451515674333995958928592228298739548478559984866757844125472867826382847975234829829629569897871714396821581437856822549646678194596597356635737444573417163467852385762158629591719788712732922359496448991196858296862338616257692973476936991885314626277811169134512971983484219226325888997621918527931619292511588963151971327685377266512861459928666718618816548144118311528678984463624449192445735585964161518293125435631598471399755127152836913134981616197657755188677757627287297817578165795937559859897526542722646259346357781494634258864518899445984556366484578893589495695975484956967863471993943125953375946788116479796368797497195172373734564167667811848267569829642769795817417897938986187128583687191128771817186228188641947553568543589947699211722916738928125896487236945958817613325837696641445663938722184968595621174772413378722693364437998435744422227512862982283216934576751845289116511743586582685383453817697872394992593739571168878262934394948447814298756987866271292894429559987846644797721912568445693747973965623437867179681265288995722237776277697969921285973261647653479782721688347449342887593517657873664194131631636169744839373391226786737188424398276234938746655648831552827968822785983392598544455799724429268821156881544827752381736831273913987269415667324853781877134648323218796274339395988145812952776855882679915936611255882583766452417322977525791869593531956323859839686848684599121534793894968687737492258411396711381585712497181167871756258289858781148857866195134927994683218826718837318682113425528588555959523297974299459263681533774539748274664494561841126977952668726657523123849718469985297734542894733819716599536363991679994166111716275129753737823328883222539195864127278257126595862791159932841473578229277721373857299964951887895379745918768438934719951899965293759791738679248321151784687837611644768984664425482847697494151275961521144847966141637626218962399767642732457745315564876495628944889182334714893162221118243148689676649466987249367362336737555994122535439341987876396883469542645774368855724355498637952287899457274939958159735129486639298474364127523568985266499364721748627691352425492898757222488112194465931157966418616155662445813814769424512446348459878577937497895341734261888989578578637393125261842499622241557529428531634813532935829697631298937687445832382126494825477593117183698817112984379385633558351474331647993868869557663178575585496195932268186799797643657895272396447515989827211135137891567744389454822585457699898967537398856456613812395164671719991733873943958484515941265227469932581261286612362396794799989935583799611215319557424159357612369988726346426944449758371412932175327668841719177795246812235618484266323159368775971428378885975256199983931918443429665549342238937872789954523579539492762996896971548823556187112538238227421472929819368479131871279337726862961684431551728314849372857952875551951446578765616996321526968167214775733676586777252579297267622363727584662363379549485168885686563754459221745399771139687739617652476595897483311169735973496772755455432238945791877678364379993626172294726456763154646287512255592237968789453982722886238718842393553112825934595613783175979776133616913631441599573368683566569791264244865166952529922566971222194584292923419612698652619871947279647488172581358772672477569267285727982499944517954838426936654216138229847628177359732512734293384835938345959889537184778377928241913617829158835654755249997655694735116783522179244896674448539532958635615878911181657347976387573319479152837757625482781487499598572422375438565925893712657483438339494973679859271519433312642439781226794599788843558715773429979791731534592721833958112842136748376387823646795332383766238566744921884181822177899835268665897537615587154539958689453733363742722278188316643671653461646527467686497857641969891628649519412715897784883753614337961974528742362387559268795776635865938355555699781961191627427358467136999658974645631293436362415457781375439762148253456414432717931693531995693236235626624422419271192817345631265653245191331741568375295168845525549332857164499256717593849957917532958796178567544877547845794312941249434422975973647748488815595725712469555194457468847942111547114643972413663244934413288979935778755959241632124398634223928744976977361259374377667865131556969822384376886658984215489572765271437715332562684247536597284425721671293114746695884339217197448325211865939761894685114646242489239536196438846252188225565876993199593271195836491673933929138736916228871569416393772329687722169561897843135238473779712169461991288245622314249132637118814244229549656724792581641274316322146988497778635775196717588511856333667195823948914423332556399659589653545427314873197666862758823831269244631388239598584844995972789252881591812337936172557879868838844198916669727939636843438488982518357993127939986692139827941523611839779461867655635163879175379787782749324878733296738339599646541151255746167319899744555167693282815747533594848143793996587449792871999851513639663995739587737265923365832434869418196843262671774246295441951355226285833453486916862545136128312288474757375963129731895533535484122336379763656966982878117567623296124552229995922122462959547137537238278771659249799869748671626634123717125828255356481225934535696544117591167769129227746374672845566484642782351879699627665732737558991284223675432725345426296249989675572783146493398721669218639547651924711342698147873399765976413198275875955354157225386926336978841266877498839876997319928276928132717984447882146614442668175174117215545995874278775974329483639525643791268196783655964358936788255564157858913173761244778359287883781586614123257937352716987666186626644789342416916275136632885956862246542683978838647232997547634983391393973924517295182913974629599424639684947957817713896292517499775964649466754971772373287116951689513351538859337162251888283497165327283713638438319638219759831974486912286495856614979919638975521334271188969411769154342361367757772441647869351719416639819529956667723256978339916599598445368965865881281847234863761357888835614947944792637281639219321885278529315537547738346366536353883138915782443356368326118987534447544164143525768858917794521865982939512589314877697535799525231352822158889815426535943598459391945995158968796319488878494173739822466974962683792149519718853548684826119799179828942224523417647118428815138245666736964343713932535719239457827748413917859968317824992493442486672265216882682662722373619286779275975996752946415278291875649175855358479662299445478586743111357726126462526867178536753623983212847113965763651753821758397423279718963745437863988978126832253997474588199678311198385539212361753548145319188249647596441915974899664148577437692312748617173639111652282133856189924996162224196421459429921316389986355668877298287917465996633883763147169763333929297157782396733691272544941143961759853835336279351959878483927623818947828585674786728498335194942328296153575445961248892972811868421966168362389836649762911715647117685274148619992168863872247483997848472382791842597621777189327668327519739432572877579369773182871669686835712148964831486575999995491643729959863649553944986449211446285439534327832199376521695736223446347656293932838852991574122631978161992164479871684528726737822789974688293732548264627735719514995552347963368923814373937518939376636166932779756139382923448685332168348775216999481341487875138134663973681694699911146216432223451282787936687216389228467576972871994665331297451958745468792341257299385239315126326315652976275885981887874976584878444765446256786765595811892143885931569999387875257729179889632993394949327489875525142999556485891974478371326634449211533893553564762657991875829868645645542986431613293254658791448227636133763523433881757935119896747723824589796142348638361424195748233528875224399922868796352181594437697142669138743189721298286362883673974896953244939415364137973933338471944579664245952637974756972597827974948639355992541324361452645922734288152665982245125269624139462974942586219137269364971495281882524265447468826845768563247845865336144894223395531275373164813324229565813563725367522578392257368497267692468574417369665995519386833827673111852462139837515873125896991285139864724973857818739316586567769222614114484953927932453288272334239471834891255229562865916189515438811142276137842544919786659451191481913911723158372698339544846283591396771166969454265474664272479146337761591892944951893891623428151923586543638533793749669921247453488678518798913489175362945786128434324793449738765466625679387969217874545523918781146416963641869557361134717943822487628654842794172812679319384857334412655862417755539956827673419764786914993644897486353892649351944786768991496651598697847815693649622178142458567945515847514251438245467617258145126829866678439275159657655421285484622789636365928482865245575382647888511445865638968969867227985689478221147937178118781967559154235265812823242149493685932697334681211426673233188627983686372512311189996836194621613162747143965993143289186369379324993416218439249252463367334336826477396732469438848275836466657194363911161533799185121375364126837511529176389961875815783967574927546476796998679954116842931745163855856539247593243488852112634934261858847661796874385867659144291692588852613598542898655935776499154245167833899494978514344497971474611213763799416766368892157686158356526827289448234948761125368974854128779824925375246983599568839291215416996799835576419459772917318258156395659728651188423933315833377532714336512989816738193549614932786387158753254283737993545471154523251264767412463887211953222845381227697721613741671791862217539329199135178451184128174734155854594885215497735746561712326729956383787113386662292793821431155211757533419769395612458123866542416196244858534412135649255858743597792443727862998391537186644625541383278186392272354681939973381696848915457187775313495255876271136466276137818548689559997889843826835512559496955967713559734873155522463383448843426954545623922927763575429435878868517278481736354181586541496166748893213532323989921149975975826293572489531497412198334172674547696844862215873988588412956524778175568988687767974977598417289844289428525176326926795562841857996466928691963785524391386446936939575365286995259939885264397373111769448887645543274424347745949481146258888135127146764221724463524559584768598353187577548715635461575418772963387952572766896943775762833179616997118477661194185531991363229776153444738633933491845164775233427363596425295143432171524733977725839997564454632565326925254922144881788513619112299941875885569437825119662751433975757567926695146167991855383388535494777343778745846564279369551953195954445823597277815816926579143454393926132148446588758419774648533415677651891744793635948426796752895662572423549893616772994777969288191415778784612463872937826893428144844424471389639686183959965729994925286476517252526746763536912922577911341211855311483597581365636656298995448973923546492712435266117975852994571454685589895169599315318619616525317156644572962231898845372291514926489215129442985823958619818713534914674345918744628816147887972737847589274623823687577242624889984979465587115257985929211644837331167323316245223455746876962596767564578116888767589472158213356725729787531888698434981351333983289918948358325214487832862711818728359929629281297688985846796363343489627614385227431999785178829585447389694149516235378521869568894521316711284348825579757682231273757836115998328468451856576554948741324114487141499748593455793325677723676867751635927377223578578988858435553356118424484186585777171421632484763859293492825653779847911638227766595843798943945983965433367234331288679419367819634775994774825763411174933553667691277338566291374159956812657322598866452547741938792436917418129397672517869774311194465784232812525119722957852162937186241469526178442673394139887588145627149964861637434917391654369165974167686853262993257893579391177288642369394597623143144612733276918825356995347153552194858965889114918811639958991494941863467639439681281182897914143174333751982552373758951241194392877387843965115191842248112291223143519886345763447589825913476878691982542887561875838275199676517644988772136264238757799673772992632213477727942832259758488178768495781146334677272612995358211744954482868619372486858591891385883927318914464675437172481394712382338748625914716975624116596785413325362122623966463483681646134472229873186626358898425267217234279861458227324873149262921187924145691719134486338563163876115847285671167872268325968915552984325172411441156744663724182936121585972634127362519347468175423886856486355856764571965844583446791965979433643276814828751115825926419445567864643286358313547953349843574185127494167835526388552841585336967614554881666346855633984276944648732258998527171362898223829753524646796369924457767475725521652684896559563214941881493874896468541769883413668661567568972986937929116142181868333521486427311941785979775695647274979379322678829217269625267574892739566676944737288153338387781789268946579637175845268596391176329922549628135247227511377528669557546766678781323382998942148585875667917963536794779381176597523484666145894997251756427376822867186899816224622119621577591999371859529211916383647995618231865513277597351729522194731399854777366567815289889982619568811664429486339828489974681991251943866569567954748778675952378386716384796165136848988769467571816737816516576482452457298426387388415316987655878116598519714373576969578693389553183226995351927612242621253469439923426358488763913848449168338663324561794241325946559443443515578958261693718661221811656383894139773235892539914956523115588273685483575199787868748784517217444696137618989522271735798882745772371565984969133396419987332489224396595832551537639673725255643634291491486754688547481991258428172441884663363966584992691915633386965996888414679575153241766799559287183254579935234885587156936591196118278951784285616934343182489611342675149243346679159956746795855894546755849166968793283589968449465172981813695536521513613998247592452246857517699235468591692184257181136163719535656455884912794211976641416912859766792664342787968247915216132589591786973457575432957952343422556131736884428499113944118457469776551745721866744361872399616245358481969542615867398444423215773446592727436277796756999134814927556592786549434697526426299567743568563699992448586899791826233538488871419689694369482379322581158532931618761628526457389674586997947187713529714642879635915886488867954153151494973418632855362461385616677169396391725288744637889284715191843398328954119625793381527557191787853637641455553347499343321416295488513185984365992699592283972159912789695879844884966137336215117948431827191895997192535985631959627231979112692633724977176689615945779853948415324362282239458649971571342845983762886811248621884353486513892439294897968247188817378223977148252446275711437778231298966538927684177588376135969256914224277328844291824121484261948134924183314862411178458152552892198718219366233843331781951318626411976659815685164657532953365381352324652638841583647866547946737398851858778759958387853523346456843127792659947565252453358916699721136596288577232787679877654841542532382289449928858976689985899784979434523256693856932149364253585293769669383982286464176336454459881296586472887668121441891277525649457792313597382737589571772941679961762727834627289827616953475729981689391926298885711955146473329788374984342778942155316574221266828844747924632888835821358424246766914284171727364838376819756172692562485962363794756688883643356284815416777138874712577332382447496944965767355859744375595157183484822884157721342558677379132682634918265882275636333379158549675488741293996361456599171163169214993694543125765736277617394411451681373363867818887623919133165163249385734866189435779443163672452141379521859943253128669765227912467995388433669818691265275994388557349164684222893342975634536663156371135396888477738654777669758597388395335296561423538752691172624519367741517527522329337559567916519836137523453763738814547815852896586743292858425878364353929547911384678963669464297996581738299387593348582243562242239454963586158852444483567873698715954454143658415261419465895789551577998986771886858958913418192496157563521176625639862749653898661784893977336895341137678723471865992689869256632489712355847882372255578659562734286526456934663913356728852442349586575429918537869788514568925548666438535322468989736443633439128667461381599842546539735271393734889462858956836555773316222138769814775895579552949631596133634327993963986888117333213794462747772196499961439174856347473424287639493814316395746657189855129332691545963776184495698658457874586683561881677859817122595587953316865437284946966298765734728272651656728788273182596974419788413772759843616368532717962378836122993826494636641586568847394422564236923967572663427549751597535661788812416978346133881275229147838635691479263568628618848457434983547619972763728289813754298986331686844638543937165255959269555126661379439651559776451384433781794794788169971836732947395587992286755669652667384947968352463968663961626396861654821423495845496351994979867275442362863434955146444118382727965966431725953446594437552885498733398839523196887389366943239937824839655639736735969337291722937664188529579228275177574788885964419882948789439578296489966126436159975428221125447852996385937558719468456182799319336621239798315415549866384124643924573875896729885847552979314458967344478186635868273821881169873168556757455589743379547646957559885627184997674624687233617996748429183781392488859189279487768764266174162592818174488881629933484178187633638646586995636474744267838922186864957689695673916983584398339888268541593531681714783848889218671367965797423333981464379643231155947484372671474564223399589636968183396513177226348453318244925892749899444913691794917247493968188945487265841615936213624275896857811596796246179688428992835353889259985293384757921729887467541758549142219485991265538682178975287474254224962943245731484617163261313218459271792232236597117289896361964136623466795669697959481333445493595247833254616753648677593712335164312748579549674795521763455899674569575927541165978175891178743513594756789733147325929877444429816381999642225734958632883643838985476896996197362915822392151985148683761897738356856619982797284268899111252673328815979676786643616173984818887619734719548693547463139365549917815118769252644654534556191188666485131184797716363869425413349291911793956566533735984488469499865731252235564966822654839725897476238667698327186525841517837632538664115887914493449369317467757172355391627819477373155263249469163472697484877529395612246267492627866771248655341981235898849386318941849971689178673711931598479552982914893876917389759469386953379613178864917947674752544168454686246828792949746297969969745318329253527449797155976596819455921467778451488156121945698432219347279866393873869455856688397624795932743819698575729892237973151383289486395623982674237568312596234366738595859816425215559472497179535614347948983222718874187892619692935362829883415462288578444926899884911447555388199865286476946286463919331419697677511679337925699194557819772775625282899648857474764231311736893312398612697535179755896314897848736818853975626847714339822824496977671895584947185699912112837832554168348447478976892846225316277329589543762652332961826494247932882972812935934973516995456526972956119261583583265779565424849567499496671998835363397665199819698574656527428665854624551617239389846739694636169359334835648457523775371749274458559969825513186987647463722223791248453477215721465938382475215423649989561898898428461542845559617672621692524341451128255981155518336139564477973977741943919675376672686598483948226529318313555783232981844166155726461878939859955159466582643193959848156288594776653434175793236498395496819783915149688917479724483954384924995957135924581628247329636871995624638145896971665227587677948863393286783137315337473362277333498146224179389557697688414831695229812981957655943912789548161756821196161762173177129545928138973399285919835422599989791327597188849629951542989589328987641312423761162982142231827721838769519215464541491418552762567142257236848369437888235469672895169287965998296784327356949811652214982413455658862275428411334469496347825991266579283958198939526342839581881321795398748999457374933571641821369795427684319469182651199137644731522444491561432775514866898868852754576865455754546223659231547862386485956287728637167425796342378474694389696629529352539174511692352699477679946348875193166464555686295655189956677859168893623182115433882435258143766813128412272993328896334787497561186195959477186864794926953139768417948522487988888273479965527776196617945542874223547991994375898692548625865557319877937398996517526313662369575619866483872327311956344229976293349998596742853567856387527675198148327548288592439752448117378637884584744169725392522972573779242855217324172192798562986785751566538392771833457827182484796524256767438666857371734129197596282739978569218425124545351514471116721563936988765558339224749337335917629136791626495162474298627359763263364378779548716761665549157978894813775891587597787551163549454111795851139242177381558592286615149669677615242837832535699399787911211774328873119446669359172622363192178914394139316899365646844738849756562358714856776868623975742891174995578694488952999487761664226368482235732166467936697598381287935966966473766896914678861987311567451967581688564795388238766439966632387295645719457342915544775563586993629572838535535188432884224229714894191833515882966942436214933525357775691988589176797266435432433874262983432533847754126993119461951954861637811966886945558995236812173729326716596371824561623495231274211944466435493143847443169387893296837474423476423864543111292877518455693534383812895592953619783726368768338582135472543861585562472569825695159967662875378576543811355921977721424515498458648366915555589945938651683349633432752523552433779114594658817423848917687572448393954394787737953427857966951427212576964764199848384884948756212186258413151136126963174528888361661568154665467322955374595788315368848213446615384374795968763647231325595496669397873697725185149934556651764917546692952624567547321544495978955474473173712253964358854421826326745817582471994552458584426919952991936634343798482649838453834315688846972957782928313333428798454991571494131681384358429652127877518618139523259316823562678429291155918831337697718383675628337272869536334927669495552315488746744789426848415742719694847816723845758449859887694596777557619375388374463455142776597319449141937319645791662696638598166898577286697369656145651964667445753217294195894939873728726973348981272438862359659534687829765798114969629286797137731518244732793285539475933573596845741397545678812998154989486719528385567925231215166623475993345615877852626488426329286841821472751379647579711632656822713387598499545936749159648527963648283654413664372623126479352798566319767678446751981792786476481532686899653321932413879267934753736932473226853799248875957754756761182589589589685826473999281522968544843434165537364296916663869696129566219351242146264174899279921248995657964492713355146564757839156593283877651299742129347384116112733242891829975869467292611588755445946898828894624836231655416342632689962867988228486528174463172279624716958221792537115971154996742561341812697315347225364739951179264555981647661257344174175213114614377885687132745282389339528927283562572785333724416154894756532276777231745311427853284868196281291128937945796985116664618858148879952936949544388858989337287111639872786382164733158886968746441254465447297967176846994446722724816641626967344573542334234245268568729986894497224266786699476944859113215662521388174851157978278134428865447698992238124427369689421478139539866378636478345384633973854694612552928266739358257334887285198863283467965793439319417752474655139727728615612293559385532425268696399385587683863555252246553348972225732754854511759222179379282319355948243939479421865552735577874388457896581629477713784538585816671494578252968674298785868659755263857881237664323342588764891733514821518873426626889346349618293597712458268765874277937329822234687169813859759687685958751169855665563943981274934735551799828139776194877551989741356624774834697923647363344596185916919399718676568761399263353284257278655144371168988923531233766943987369699186974411663546885989193797815319975257949296922739762336289138373321589517967669469584699448967169716536879626658655966995456529953136145831664521499281791635684444159166176585982999969582572762437586639854138388782929485649225676119569819783522368738451976514618253614867643381672695425941761278983813873381879369896778121296262659478511793894449854239848573944957266372171226716955882216697531392498789194144329394296723995947726185674566538862184417818281493726426663348326949414169841397286482512587945453632878569758586938798162164769152251227938199399971891573496557377391246482765491357483745291651797869476655667982564399295534917776328324433885657922422165714355788525217469972268819758799155418189346313173783986479855775786797765957944982461674972267727943348472753494121353128459918596379549161575947761988977519298159265276925256448794941165558956576284849335996816523463278252359899184572998216634229275548489567582559348985582893549619714149928491221421592918876368458861567221413995415858748987164798481219227749426191485955686551193924977213761169281275537537696922452745692562863117669464561474518827745962227881862191878172556689889961679731815381884979574547963691351478927672643516683874885514676481999972747185438183687954472234795417696716371732716356429181459164652758477796324496545315699389838511961463875329386618467443565786719128358195226694756188627138485523774171762761257689751822441622299462675833213315244161268874839617636574734293568596326366352173898851624468644237874872919324127925928662294371743347939739725548544376875218763166938748818871759824995388698134431747314314651627296471673922799692923635911226627864152366273231495371944438354519675819133537783785889451456443643168628238532192375747611235347767352672943196256835158765313127566458114598934117859979385549739237468849524514876229893193838321133466633564588687974172512332647255873594939586215946834751283739135539671617149895323436216516825928495762994496578689252236257887674955398894495458788947892867948483368521645478267438815481189775853853681568746738198246984516983851162897973937546299117288341149641258657438676887748991338424959446679769768239156722185478777554669522575482622368521565789124483943237481111725448112216561981992411316134898598772511416382623798553388654451833183547158688828846318884838683699913953368385447494579495247193259814192356234481393288979571921254768477397654782974823277985473849947979928449526362279385767555294987134767637751945344757638491657858279969381899371429471358416525136517715778972724883566955698251635433736896658946751323989454963585417924279336618576528743299998441144364966388981955441483982716338589553372398632466273157758439527482965977979776997948588988571828825912167362197432968299219747166337768455464144444191318626779635996482849775374783732289418221831936997336758642997754775744744683853528386373373166415969533676323833926421339949424744288376187246228932892199288239262332333126515955489954437453242455958594175541981732694921389756435115847193139554536952817986983925549832157839156847768898158911817484282921393487657454644756599947662625565236375794769747321789573595191338975335358155585341648991888938459577977315821382245448822139312735431356186977249693991177883432937889146288754367272663535699278872339874583222717964736792475455738526951915397949988829427587889231255245564468484297478232882873321374542927414746248412531162933926224887487498229175345179736369772185919459943537559319523494782676635213632783751389138234283293163468797277372795117678162121637244452638156424178625725197947681441413219388991346143887753511878686296234421894823698551689924667213721626884199716588926859666768984275881396711683896113243414673665317791194249269594554598549482915451427151771969945982534816567314251899148618799425493819755658349639521981341979466977387183734629684298537988933988973999749385459524459354723276117831542456776873717134835167444969929785598695763155436669618756157937276989989738753682169678196939899634397393212674844769754582858753656148579811755427676412298133189962448542185411241931227171515214749566676791847888867856477452776375657659539616845979695356747737183126337439132384416929693784593745199796653735933595383999944334872459114579435418661117184149658198535357639668338759155556759961369937255952621817954598874386967592641623117629767884926898797573573417885237579336758428533769886373791364464375877554865552578859279183637849673857275583283782959612858623338838834529547684589891145421865788438619525189663519572335795987929277947577687113829484364386938293866985652518495713399569333389441536333235696316641499249244358356524681926511631758497125868138623733881587362866852724874885787556915388371848843274126477564144814984499172278498586794689383479948622661418927575127857516997419656593475936917929894132894842366179442749685163256764711674138932348285161918583826854478544718412388617871255843568114572188485172948135784616376891596981622996544417114399691232362466818568835589229134437756293467486379475352392151932945639349671333833784641923259621697989292157966886368842268536541178754241439871699636763861136197824669279219517543148391988421738355743818245269941698936276885415993574416823284271793792778388287613216998969988656139442117198517581533191477125771936247268323496294482628857191351931645244893759589687123188227892549825667223641496972329159313564549256842458694679471226615629281231176325536817522475528223891863521959966998127613655143143847492323529898147925292648669963631596634538173693117598433133479891387794181261311377423118833821336747459343879331282652556295692546495346189979965132294512486199514394447351615582986261154732237651319327337948455933635651142795882937865258718796239757978637832548284559668493681256951761726883319988847232551331693788624992989435799639274466727893288954982453294627928588224731597753496162561724939718248391356688342181289449234638292931867172348265856916868173736286256736211892523189894545554115354295466642239669543867281693922956297648963885856918971886625697468355889742387681267478131415713682577131282964636458588165584648537121672397648335874277544312627779893131193132623336172933129438981949477897558345917689385441979795751272998896432975338718543739195566362221395975587886411725563271738883158194935143935999891637349921159117685119833867734791874439941844888525556935984816284851686846666271886788759681787852415955757429744477493826892382721752841965743548698483555819243165225177646264428888758953239856713697242716888249655915652875239735251928646616888639396569442431397184549191247928888398879615332395143479782418299133425535338341496238618979385389689761521297296577995385359457837385275541973272551494133957798823195839111263167692349829748224817729223781934765425437385917854312584143418559953587799568894869537491191861679115738718468544187858176894333913121524239461952138297611252684254341714297651143861518556525245869742246973599827411711366464535919672358812858597219394513286884162838546118344353777846334753297419324813268539527742821577285298288987563516726861982539937692485671164972924715356579426345123423673494162632883925163468444516498431918125363795298759151783614885358579818161256466181589633467397732999555398132652547172821246745791135654836939722476675643242253543346539263225836599431247839686741832549986136554833629165692269392328689119188281478775534486847887833777379583979415189787357363276531825716182414485326155967311686974859359373975397839551558232779471698752815542748133142713691974948511539727575298676453223553389997968656124421141173234326666144274878575829668724166333842521334986597933256884564124477916527872635274487817499915124215938181574486896327855889363925781973779443214339927685729257924224694854297743995389923592857853756759283539764994659772455757825393791687668672522778855243277182824588637926441128747867913836357673853465581539699736543835584512792287413287938733798899686169724262594251869864994146429613349569466257275361995494225527353545515589348135954995617594227367713311175948149817266299415988434958921953255367674355696473344627318446893746176468482455959431488878695167721922562631948389358797153364292724665185631698529586951668581221657794865646482366887942737597857396934287636126663336574355929496279268274297743498727357777844987333532794339151427237418767431487659217254313278655919767753861393521938653457362276692793263335256658336729465825721233453188642397495769937857849567797751897644557283897794699935587869875557387272497462199628916296863118874171294594499475616219282617641616136284631512621891261343862664686413237236244791976112978898462612717423415453838248744946972679783192134841689747558394837391617346478347768632621614729726621883699845759984563428531575137765135763999968289842965593856979362545836977738959644654878265255771367547646777527316111313176245714434881195457243954348966382848956589533727491341641773738213368627888637619322539535982456954286275944766649967417573924131856494124741515126433833257798586842835398873161459739628563268915625115571764617118248382497921755934899877263544235357676661975924449941755793977246876771186764972697119953766837947614532387555154717588974196617948154329951623283652268437342699425372495234634917673756762281781947292374626772311615969824595961916297692574362863842954253714698182699251239946777766593126494528638177464724647965896812483769946759984738946977387239647655842478165789959171598589235638927795393858147649216829592152769827835968834846951195941772225941783878112341959857849473437941591836554913783978162781572454988296957568857514837695875735997518198634777471288314172685791671916176121866526598198352949978154537561419993813512918386887316549324567867378815254517515257998587778236827957666692775682956154388129687824123128846138794454169947319512294263914515342737889868442288859263878865965568388865216435324131698949365432294235781593989187951881249661735363415722321118122773952767755592822468226999328593959264117659764997987179787388777517382553435869426439342127613793447997456988261376975369895438171645868386734721253894383414623997849577122859218438693363165388691736832849857877991555933639717911447794189888738157136658455189861788272949354411211451818499634776753637246524547685995198332916775489718983583624751377168339112647359815737829914988525599618879727844228989545463375132481711378515384788995677159386569576879897327745349239927658435178859724734159317647675973834893178467187465532951677774421468865628226798326798628389374373682198827576394463819914311615863495472213848629999865373116127838921423544731427957938879919241328771125149327138528792955923492738363487798881417365628818996753844628594663898541572864287175362176483476471886357863765414178575553241681568623859786196685441198269155145911839883377749476911887474154466373248238433557793988119757334744246673135467935273593779782681956852615597369151872147684974252751749771843227754191278574839653639626894365147461536397187676825918513742244827472775998326967881396837425444169649589432939657375268424588251626966783168869753438435895825358433761728689253918452449471548661911678559647193991993172824787613434878933716419289333725344121442193445665161665339439791826899646975645175492314278912954515874995468929828126769953257319715694463612826179798483745229364325833837375168297597356114815813885178662848839129994152933278353875996698245334781482196758512282336368852965669554943355919994778788285666966914664998377968946373834665355383568478571636579298422517997984699673311797253326972678482743691456991759441242188337664657834987524745568943488631278137949357898574839628626414979675737383161649588398243889552549128689543584831989991134725668465984493856694411658998724935971861686562669162286815634914839515787997366946672231949898569165537596918945529787695223654777914755692661337129927874661987112666661242388529227341522811177726764378875682831798864531328951329256574582247886635781774287922876273549837723959453821465994999948154146187236932543721215229969392988691472755111553684771219568955919394125545869912848711168427227835499832486968344822578619936627222371642364366795877517664556499788989739318877271165418769859944253258915493333961482638197965584153368515782579121472788478567445913418684686195521325688956359449869136494936121795341926289895288457419886114644361784147639319426439545811991393246651652236237385585583827414699168794228581816894843854344535276254527582546233298291815919341855258629313287984118861473451372778915159939976568527514947138337391339516799385766299178843195652461646718195797296386152599218525582254635211863791955624689738233225143796939849857715539954345829139433978187958867993491946226294555879811549786163245812788613179868147585392598347859836859333456697381583772251542151971384497253242312929341937254129768271995158327211985916368239187977389471387321163186498224362884996849986514272446723847718863539277711769126156356485199283714548816428238846684488843499555364523629186282615272634353534327811963914174443996778139382435785945742124581815164547384467531821581861553491437679971669446927433277566899293414941723681695712758968176834615422829911533532312324976736452761162933996796668323233119496637467473317731415132659834249492588939219993324382992981583773639383645951679638727134447466638791328343365526697889612865119249481747141532391133137881255847317533821839591982244931492821245141864444289686341465384657169883924612366458528762159393793564535558797989569991151698245478529425184351759782455843958792536846366934143665697471416347898962678853574876133849757925697971591941799291898633191221445847637664436541963778569497246399588718459773915914982862345216989472969785682972794116152555969538749182114468228344989266378563933447268812122975781151975897411892747211796978234445316598258988221138122666774383859928559448522497163557461766332275698639855576977312555372811848145558319812911928283494112136229445886953672521898583613983262422474311858878668243968969873359711686974535281516218556629839489914119587579879692495568848872997192461686581387724384483871277285379131431986243478322428216238236976945894438848712718722972879145334623278151281378663435175497453299831865484453585263238562881274695139685945756376914664495741861965564941525587887685826217297727858149828355368858721164326861181676762795448133484895421443328348536317624396961349363144444528744661256521413295895595829498632789628942678298882568473387985585465993551673485778676354579695821495869579739988879636828866544189987398594894523187389192484147895765442926185626513368284657839566599348598198438194981517458559739574821918483547195527962666691978297666979528887192853195292427317988673885433369277773732333944647799752193867945484927922158617524572581661436635829894965989864594616595533798788132626838982439567893786792985751884198184357972327311214893668647382776765827343725855742972932916697288374526941479984521346261378573846498946248526562868891229866587443498681712672998827972269383597894972871776874587954632142165269224877462949359438614566298383233782585489242967218313979372628772834562389529987316127979883617819332412665328379794878519355379153416368548711387896724833361964992216765336572194267544596566361241453668542348386137452567336119433639621654791634337481414558825987289424111834845449784884925785546345591925938582344488887741768514976149516123215993992283681912168818234258957475639835593782658233246918395522995832437822944856299463765248991785393556182424365265745745322951867519663266499588681113769988989167323731329136386342898822385633396669536255343779756361566113675183773414477878543465468564976817961968587366827469291156471582782776357127792743216616527479673319148755757577244487174755877638695811812799917966356529788297334863837225522167762457842665282484958123346545277287848157122878298478513671562853492836831328141692623168291772735951619844644216583995891396544724934253723869991857179396676612994548438977897685693146417847748519617875338895564424748331169119851369857952276985279365937425114292474281463872198998795483289453183373664783553497129562264669348356633827296427468739429996596214585993684451374357329572446854869276295874627684686848295544878129384283559984461429788599458385382942889774699437528639632347534343977648926432772618651431388384939498323933539599771311259411773584422132273662986683265951935866747799668796766316787623647466453216774465528578776183879183864519718424248196724533537955668173918671479566997546469452669552959645862429343833152589599668753696241233249371574466945785843896396865856659144959651965938228351394318949968163996428766259665226294274941251186697193246241358572494162546542575876946934355476921191115184527728942498951455835457569385862996746396738212245266222324927423349867987568354978515785373629774879596575399386367469662219587662948355366949962563198654794679873787681155159826775763639819712484164843949867775935758753462976929872943966625566242569832873387888798333516679555692329586455813939396448477855638427293657598144935988971264423482327443871351865343449798745396465662496449755328597998512411332689927643653511977947431782153699826399578661583373729239266484366815945482887637853939945112958842819846117126422196977869123192543278157935133189321143697315539676317253596555657835232687788643342849436812914655397854841817784969622638763141317921321781775525365151982165141553558831179793843166326857532999662845154485692524137977727557496497949914858671887829177415979326618875923852676179362367828517414117311518892453893722891956689342646433683972968372814282971441392652363528295573473893988281311849748638591979854693426222627399849877554748621973691618816958416417195757396188875331976286295583113928926839163659889174667537571567774188159446492381277957887866534287994197532294264153847212659792681669531341764394424884976211522987954278576719975286543947315297618159692412953756828937665981893347858269854437858364244875681487763392673924251771218818347391287739188975211522821553568386846838785649731655756898567286845275497811533118446557897623335525268668599781166993645949557779524978718748776345817215734775556998962117542434645435371711628965343245494139769365284346594951763578134917663546864963388966626747626959227654948877538628164834692869486964975428689161437989627155193566237714323333528536633573139566817575192396268153577479131346832533752432892278734449399975737837546114746345374595277141923565928182513116334236575766749586357718861961692265279912855499239349855838558848716592274764373746299748396879279659255412857191378755246328181587652967669599255161374817454123388618919376179786138394176324978233521192731527785881884269266815325578538971455815759877783587978471132748555392584155795933959635469148181738284274479327473819171236116648649953755547671169372586454412822742776892924415989399216687961829983456874283685976259438163685264529943698985918496792185891189148434539481586646565788498151983147495673212759325174254396737577323318175879964793639329335957886657916377319919664789158616384691574621597614653672416581114895571967331676364952811587866767294431448525927133225258782683544771843839565485887829467982458423855721329721974591569523611846646482184972654663861649913652568247674816696314892746542722397539684998134923855471895737322364285646479868484762238189173875457282329618978299953692592115897153988781726447446432734985932617851477689469473893361947585812526138245342993952539535245237588283792973545158284689743497193827745124753958995871415944656978616787167636372458988784692784772485734464289154394734435419226618189358437549881468913254653479565772741534865817417174618877496964131373968377459547536386916516942159333326228677234955294872831954729443278566524237838694427622939141928416134662524459828261379382699269767931166472539355918972957285368652477842784519342552337346448579725351894531147933454868798293843517792642354575876945267364177418254693157283928866715598312499676776321716511615758959576269956654292438986431136871315651764723314419234975532387781736242797957669388566997282583336569219867546798628144646968927289261523893238687256768695765783712335243339958283583697572721752523768655769992855181952694861495472655831151441698817245468519888455587441994341792986412436688695757164469829912627435431411997737225533344685813745979282166554679614566158775142621369818318591967985864561336359849881548584158947217434515672186472983548393469576362738995458678644767887887138139483955715684997962341667757889619657326765116957347877647985113785428814112657585117881388341218412222951399591228665116529646885289719111831885342294795754432954958225881129823651952229321616697719353292961656853929553376486661228426248278215896978197961242688436929771452579799794163992243651913444799276855915667145939688696211615185885459866487633755274819452768969639888452676471265887468331525895373624717876758972542532778551698765538113188442974744251167123195732665623916324652594877537727957973885839667251287818952394776841413283739323466317946449714825943875543543155177431882791755917255687265612513349692384546382963966897254278821874964119354796468779557288185768184871747886285272516527582514787939161219379727798977388864528949185361252439888193565763486916769174473497464653524529448246719744712957786193698858597673997144854679879176447582715577741865161984345522144489124658324768776891378394899813417966934118257389658979936726182547642888984512646536514979391535341357464991236816182719617922836678188664973569482425149561979681322146241734422975835647265512668343662738925941597962174695778318618737134962814517757395256391665156247498334532599335226157814288996788913518286113173297549737625427452486217863139784379563592984565737897632398564653885152682648598472281985827762165421458352186728722588198294685673488715178875798929896886227655584431258324229273771916353719323279535448978337449772562176359856395427148447968777855819566119488517346272991375453525538695741915984216161218548747333637697399446693417955285999437741315951579457731135771889967995568832596511143481232278616562375333349357487832565946939787743486226133649696784478687391973226824146215292336139561171582237997247194378556379675965346764796574483729998825798928728215884777462953297553494341241339635438773394397459914355486834318334921285791786537198466138951199912142755434785982835265177887656914449454351648996972333598357684194994499469542155882297973599387856853334767147562619778912399732627416542874675337553488545689513566334167923166489623278515469238271283773536649219247616319595595782698748299647826533297593672975914153267289128489192654648932771214572983356939717779514888269727153598364959288544466573945224535183384225399984453312571376936343627519877916338424272162959315222638353382823577132343921981778517755641438951916775311528892392786588148249356925925245531361837815545846165722673356825579512942663159598937998328339338364884662729842489454429959344929661851768212632441187639249773187661766877756782165933845398155954836314712557597357275518752637516686576691319623277442971634767494231294864977426156776888868876389975461259757742979445469189337952779221969399454759688398611177164972213754866312178475664375268478869238273289976146439732437466559858558817389829229624735969296672842584741341479339515627214618455826492141291998684939838367428673321573215357793947128319282979524222282288447784991611982897619692159587569457654696644929747916592436652347917868164649472993739357378666654919177979137889879571851415911218768988728914636425874688624777879329437572236226714924838377775344128314857419223384642361413593371647216423288284858712555239195683172231846979266575171133962993755823852557868915594646449715393269544122978154375542769914249523481215695675113849369778612343349687486264942459889465717671952355975815189592981751516958187689822158419597257592256897371752975625443856989579685534888812559163644784742621485831574941533531723654873359999668262413355996679415868481972799954857374555766835711561562672892419387879625648747989648282831992367569758671582616713851697166976121158651694934819197466675693592415336718554954461814488181612844388851664255552211265355897924242295194497134334272561947138465868638444985742247765444871366634628143637859998977745729214344231959924186687671765895263289454676892634957961453714846675937866966468487838141263344725175782466281447679441989331448879626745346575164668962776897429158187267879839129946563416489249473197324178493819159291887638997466317882777764387724718124918119696969693268895751353458447816624988828995921647749455164698759792812933869945528211945791225388115717586174824885544533642616464879993973949486884679789727477624985881165966891898412153579197716222975236836694127656162919753275873856874887757152626689562979988913159925966518163482285571367444629325569999519943693336956753844184996499114948489685192944586564716494191298651212595213562715225834399924377584849232122314844586369692839834633185794315979934114116954827814429638442956863965213112575994497251274354332755844189165377797636926235619728546549198778959521588664156762919683499439753355669793615667644727964848933649784873638462474111792739199199332597875289925188858795283638565631855748251889652229477978187489414185144657149343562117846846111349696813862912357284882256869785127237435622523745995262571228427389972571333387285245892427839258692928451776182915715363988851112378384136336641743561915846997339343577843436788875299276373467497962591892828986364197384978355449885456794348383554513636393421127978798427385863134477699525496986523826825983462321487721161511568873899397438827185764633228522814422131935385916314847682218961893617799523827479389661458592667246918159287274466981938556692387752789752286679578349766374548726264561836383684336342359145547681127869382481629821332884915228785271585883715875285637791314585154112711593251272174941884691849271145325797195493193666314297951698148156383271447678428997799842758388972944637884514812272852158782938874411431269122363881929819381341443595126481578894228238691427661398597629429255434997854593914859973438482753898288394373776757915579864526275525459952466738184364514152882231297214347366995966576748579997831145114962739349169284447669264499854461886967776787881527519664991457234695887132459658652522656854187645171353618947184435393994289214785938537577469559724186399418234153125167441987481765345361154762536262437535617178288447577319372224669169349968694743782582499834139865585866756344343685574471499565291688871645714456516565525161756114665995584268728645666622546864288385821152987373915635116446655451699618693748383698496124699435774952814587778566351655113126786488883991348656285362421854184429553363146737473692434375125317649411625969683634856577193151563355928782349554839793587354312732632546561576759946189898414923975992944771681366555538268256939782276923228931795753439824137568588731164671121799118534489738639885539964876156167481823868462341818766854962162657121261384648288135457252392767135369596667371129286666422913813196439636627236721483268272119334888547266818731483565445387246228773227752866722178939799591739122153324489546951658252794428734498838196373263473344825544619687168668151934698512986476689878898752387339945779986385523674267194956852159767428263245288468834819754413263719428267349993646347245998878352395448665373771727248633145374182549386573884214166288996925629797839155221892391456566276847794555718363597542478249588685224123871682837556647483687985115355939826245981313575655331299668876578841363871584571369724826171416455157288951327596452389381556792211335869379684286291474487169765247783525359119973815242442969537932258599648824481721599135361975682948549418612982468993248927217347796478787548779463852783588613765311372744278448969893124813575475378518753352149476996233668827422855812456434757799573698339797618114978791525491897365187596181586615374913442545171143825873349832398353988258686994379595471541712478879112942658161548794611548657349253674514717851547562198585693592779175869266743989565762274375473672428168786617965981977669858175959437629266789719494764641666266747293694132739888725782432689441873962968435833172668162418116337365641182637473178214718948673882182989457146848545525859286713489972944375444686417383814996755993159216545557635965225862186716665864113266157438888215621158953961594924697538619944523668784127658586122226621567142352392817818727178291933223436549372973427743234585256143944999771585298859353437427538778672197532786255319634752339431373113722175589998387565922848174888294342239398768498996697445494143615523896276489764146712841863445756723341648855653777659746248932152494977437597927813656516959777872669811373565273571416116119585552326378872925745569761631139194899358586375664213642967456697184684582364645917199296823686373678595582249835733892631638772689718445182937878475569241621943278829649151348985843734797561998184112572562656929462613283544264993565129389619271873432639243779747166354525693359941753735211161259257827315844537811643822836384279512947494437688661564818748955558953987431939578478342898962124914922938898463994464585116255565768717653656783568628743583944159229472524584672945431375817344675314475164152612445924832899416747986676164319774636541336989716145789715585154671521559831765985942573867537753296689243296275428188763562729136857172325352748754866414195277554293996363918439164665313134532657241818873681554856941516523343749473177294792976757695534652185762869345694436243645939439538611125115369663928815253387873814736772178672744969294198127691433772721634126336213152881248188537921645775282677438545552572649982939655293551791126642956323126313928553556396251993168397967264688243914459351891534835276725893368337445669413454536352441497893135578549895979172268396789434442584512934398174878894617629861738773782972756861891566899861547135848297844444516314181341276638447287559343177324394236965873849876618167132216276687163689518265163718463635219774454969252487542399447553444458941272548826867192429421769597544767628285948455994767895213322396981334796886114933282374794994692995227745197517888314687269366525251589965746941343987695412893191547359585978652943125572687351821243779237854283974578863458478959378281111884271575111698644483626739263812184179966828854134958157595365165358465589976156198361716724424379287487386691112523199218484747793515479886893451318362556993562625761663358662763921936342748538458881187448297393787596865968554552927545657971948397953937357771424114758344875491125388695579156134411446894538281514962285746781287994121419248869371224356951944921355633954498317616394435124133919924524165365422674688759932429669548958521484271545397954365642356765336498281277894155479927797179419832377519884879715773324462525486535689666733355511575645516163945476986748258658923659251869211297747399129832277655585939422745858137936192898464819264151485778389637745492894293496648233939667848194556295159822137962926779275899691495275756621429436462768992857126578216845493733543143622692334185453922769448848198896334585684166629961393383129741969575727212947188823744431632891588969964166978261633593478864915325782266958675365399496588461142761785271599811873637886919157247759442187252482154176498326192347816729924719779325669372981983855388545394472132562882481767171944912715874153971189258688921559968379471456119357411256159471633374712853334987661695687471474545313292727283565864762441272233695698111481659245512487371618546392797377545284842698514762559665593754997395187556186998364979997437971568454821933952815283497349668899465687445817638286687983451664126589121448313386244221157675649677311438866629976137849572331595513541997542861695622383495759113583464584875749627497427514467777726877662413322957239674946935346324476646452956448591743623768996365214556762976249266898144939975664969252666938367358134766918418925228464733487833624964571917148327433132433779247154681993938852395779164423193156649931122216432454553236439693568114713552646654313373871927198266672353228685446782633655315489643948988585261747173437538525862653339869189582671853865916549425735694782629288582255553286591399149642194939777954283659985535866629588892473936534196688294416575966617647883846825141417744549446971299447624185625345777694993856358865138392627483379118795441252881445969658984566787671226642717692914657136581141429764793528799243174385549292592194719764876859537438492263132241926179854797933768587979979743431453468275811216829241164885448292684122529787444462217473459963972562878981397981239995682455772183114119674348997586315576654276748417781453419336782645888575555769454636512464962629755117557563463813548321621226523626733528896436889326729668247914529182169129281546448643432725795243949611976916357764641435599971382354853273883127333249224644983797693656713645795848777499799819992145835379569724542932177141718381662693469535656414217865779221888722714689138473121439122617619359884442915656436181786449835765914541243997228442493251515432427268287469917274958642392667938976412622545688372865996977793194292628283172277237235954169717927993825815893488921587842994192124245519415677563595588358666871848263456396569384212237434269318442562372551894491419681787937494161475166722373773219136137227243132995769994559667261113434964359921225621416872111523657987825567894547972381894767437854348333165133622922978882545929899527329458242877391486789662824954456258537272737563663533614787172598476121743578566411655322827339688917739653256398519665344798958959819496378448468446123827362338626274696176277648939246772644529766253881181266734997267975245992622643943291479182924425837589679983662935469853683258453789651778719722982329284392744635366798722153928423919248378173295773767627148876776774282295222598114221781728177526566588263668312498579586575669715951636318913619587193883719663412559318793214668344436677898277681488627334112528882994947194823689135379136845246366587839182973834913294584865133852994835936229652251447518159729544479488612297956183819397973846631825533781375577931943563613639468959482359624214389268444873587669311199157523591588568992196332168588913952243267667863923196461265621955936444923423543588145161532787819599852578598649581355651519675449643572855745889898197873966428473933874338951567945672686385533413278884213577985599875494745213179575782214191541499282336913979263737319895794188945452267692292988337278854652977672865376161496274226212662146427915316771211887741638484889762866527474664713821736873642727871425131572822479752118183952657647163438488262428485669299863473422316615713858692892368248795789697346563137539887766391472548388619599242569536849637848989127939735487396625544876598322883133725925477542748573526351686946141646986239874965492613214875678398939762113168966358713813357417128492515958735311599121324888394447123725352463897215572861441339524296652956814734831437385876852393991432895116833976826454548138625755614387293411348383123388528147797248282858963986955238512844453696127128526952938646849962796421768847965195247355435163963347573174747234395891654952764885114296422674749922479486945687151426937726949412546223656637564986492175755457363791172118426265217658894679367672799738859719979755492671946462933289425345128685927967759226217357949992972543733216791245693655178378896393375787189452689148357796758629615898376484924849299999877595167275147666653787555277573289349499835629378276676724446497242655562348633338493579218798189337543214745731582715972381786714929665783542852461272359275562755493443936879397775749187742979714327151696797295898858147875696165495926438878722586117498371831692886469387476731899267569268667826723613846779451721344456286637754793919169851131419128457798161895844237887434427448137829445853227399416168949975933947428262579472367753653716131671146451483293251287233331214536632658529115751348789587514579763539129842555473831272244795571122912883653847683797212596513689711544632598995432168611945386876819753599193525917862341942348516991831567321912714614889495958152125723845754413989363521331385455194984593599626839597445677839346798577796434389523397225178575525648924456188654376844792146934633253764193649712948719332581457815916352742361813995786689679544359545986892653852794523696938731288667177267492454615395117133685265945463831518685443498254549839266184141855248814516449757535298176831742734797655753118191361748266461559678345782956279777547281245741422665857699915968569662229122197639885681265597339682681947891613633798118216256948951398275358559167949665857515967516579716684988545759198545446564396353811416826646514813137413433598587266186331934431688922983122677896612363157692667523158787868755545949542556188557364661182147911547856511272143766932381198396887464324548278279973163583874512614232919926655974182776723897627137799568591693279874176621534512863131497389677332364499228131472599311388441779928631217189591893759394999325698885111754176388229826633388358215618618276775651334753787889495177139929279829987115378459361184756875195874492993974579825991127436783388911875574322385162668447419394837655893161511454272296318739726726567958592328321878492129998974846443937546124828189392188678548817791946459423986654581162639827387252897826989995947659835835247668567577936284223897551456783265331833933659642526622829772653776233177269349924793191985578591738217782722853871283132831429652588631256253377645147785663342675913383937549147558563997484576177811598526982217993962899997285519347231635439873825388366514796569455524142136454892971436151941674353827117489356112219363456355449528892668125638128575997537444182329871461416478559751793784231661888414931758376519612896453894916276927473777994545999328626741118844653924558636524589622369547451757275638877266276945481616116998437499665168983931595697836698816567817787611396292976676356317412456841463335369267893819865959641858241164934438741183258369724231529771826274845736461897752336825696367436287657167692159829469684792715826671866193249284836941618174276722168242993742272187189317539447182366883783364792414265953415533926165457848974351275281211649595744634878897768156152315895991734574432679187368913373171381485969696263815591994754165253316641344943795216187771995564497465363547454361228141183517913238545561443274224571443335246813979419588991831312249369423612241135663747315776372878379775121655661176949277175619886217137494145571836566596457651468576378477595967363662539696836898645416744558617837615318739922313442361124179357257845155193631127284349744324497982369417454292593357535781391477112221982812468936144297418736145616738738757867828825582338561421238325787456431338293248256729787828519551813216422612915381623236751286491223422155826278848819499295629696478442548986367718441932887867794987992921948445215795975472331766165485736472275264637675957243714787853453543574941171852738529525477784438452855786188391918771561764181629959859419371877625465756135366969116896925179473685747325665866964147517438958382233883716315158811678964537995549793228471349942791233363687992219865531398186795523111457438658653458643162942967957112127491959992228856481726352946331433417624777156749163965795657645191644912314137695594347617259958479411582677823787632849634358143929639526132919467212766535725665519496793724466182879894745795517655771697744757724994199893927817846714565939713657729813716914758821746428165168881183138555253416824283614492867751669635196169261586357538583545615316261786292923529221244276857998826595944299793321662736397546164266813829581165885873247171623144979345115717166883494374348838597169569291549359349357571674898267968296233729978875399188214843685483245745791838588895958956176889664792617344617318668772923986882224472587328851581413977777661373672669978293818579284454738343453338462415897967446787835228172496496641286643589689197216375661453459946585811397344143212518176966969558543552186187579768936834692595957129352129724396463511618361549661385818787285376112738678246887152633491887646789578645948422741337814745197484828885595433512238512778685331389121467232245297442651939671146588926815299372318935379187475347979156179463117876976672361285798979587651525183393964825416814615732861121257166137414764393757754843918973418432313572864647896816512717412819877397845493467479164981398714573796819137953215476645735594427857584768924655477596187686995945466595747974964843551881284692988576589599353766144822383595587223774222494137392278692247186682866568746659757423671849473255946961461949486937746995589158838939812635843288448855899461798386688137794235532747332254887117592646674445412567555618939486627398365142828673846581922181393116371849448916355753819396996773687877295631827193794586137878489887873366957514659697918922372159559647635663276442667936433943361619444966292738183299186163134582379469135282394568673434424313588175619589868894935414732738971322591398322722623846851754472749846154761619714932112867958782249518867879382969954479526134165991343218692373274169871657923375415145524888483655977296511313683133394188588468776156594379416195529796597454792767593771854515368245521667541613924883323463684476936443295986694886373427338522899858941237715158827152892853494942856554582797939785525942461279765736963364123921219933438822788657721623256935223951585392944253185883523781492617282376242635241869886747315732794121454342292974141833827567684365749267592651444226723843349955288813655144639359374836776785948681682842362158522633981675782478561478865534311533657648376166376742413472854982796998926151893528516866449815366658286964853457287141954158788543831628755837696194569475482869413451182447689684573364327237893771197855691499788368637347993645532532744243486115354232251893717254834623532677826814681464895819927897849544386657943478234524488615713199998277998584988974499525132978572337636824439234212347691894724743498987919813732284132876772563183795317146988394191118412485424579295547671466215714528261293649815719792914775697238168685622857143624227388891814984495722556139891762826433896383727824789771295939971927883578526554863792689912979211162673991896386548939363927541272558358679957373953142126336569433863625588918654877649191815136331385776931539637228191649726529713754347662379745166596462552766547573656551749841656159453181283969714671161322283649572237679978149828355689215969764232291152346368151349439883832233753484958886857134818889993248582115895961337639615646276629379681346675121889937938951347161669343677643948845417861456943132649936499342548885511542297169148574956534638615822697513612921573381889235842114329579728899131532387364536637289124479594172723326987666825649533764334273696659974713273591384243655558763142279185711377471811334547394838976176472946677685791619558944996936119715364215123757557476498122495444721842945157592715444498992216283894922853738996629456364737972382774187494392554791374186991632491665279171719297545288274413826519249968783752512376181332866557962324467747253621282289576667555288286169149698397835212476494124877553844158553182593494294159683259284128321582861424393462662541743459685395769899999112634585323657689461873329932845368712456178225381493343542585179278669656634534622241444883333272748455322563726881871844892174555162752398467588523758123785572724432988475284264876674171455983957256446519385753159328652799249777984546459177824928787352981788147766674231354586962885934835188539275646512682682326844386194144796339679122318976482685281768741751643173897255964999872779811177175238813789644932961893326186769296362826567943615578995462393893774743279938491188686377419493496938235582828873858559547629728676664188468392424981442814696184939953466139942956771993494187789144499233996241385332566929639653285674766332915712653288238367942474681656859263599568646785733811981486893124969171364624257989485227649198225594695798635792969588588788893118822829659273514484158297238177882645199682745569145243197166256642256725656134576524228337119815856122561593682672581897734412435211353666859312856661853596648646395473531439334243286944216662862399157696642238578224549337156179346512148846912186925336453962132396163519952372564266468674123798569729952755457235912344967471948612316878643318966752224327276884748428516183937721423678126675483993773216535822435983876696291538348843639573879751791217933336218929631438236696845927625782229197799592674945453884759268474728188697991356913614729227193872867396997453935577416879382282967661828618554371713176365124196891478779781472175574382942571599318251799396615796798458738895945837558147445921651211517893742557677668252222348834241886685292174329474211886227951347588439751762168739427532971997888824186983724112352881712516148296274941263717532798119641656639768646415961236828133281798912172972389268186854345936191751337682739147516692658843659146364543499215697644719834815841944191845755381887638938456799951825155787341678398982859319798872724668911832765135731911571954293211341897474773284227688899266834914631191446626455856289861538647537261111885636242862952749861615947971321685835189227918775577815461636843227423861365814625583221457983881549831117485945559959364977189189394861198485945791913593247968323935734534934293992796857357421913445793812794898781767939986923748147849289649228294793658169893616429531844112935688622314959748794655231454582157582173852638925623325539963764142865144655834185456873596396529239124413478651574363721799751641557525523337472716926297268688324489868291529567378442459194254962435627883141767238633682235977623434261375454669583894925434179223928718326248739155662921198585826694869631827846583336673138295611746574911749368467796534692758197892474561812862179363642713814827966637246782243877411246493348996335913788792621957955191459179912741338178731741973376138713611773117852932262486319646658337878198684638343399983124835363513538249364295764625437968199724241168442551274229865571614374879441383551248184757523269263959942575312986865738224163558593989384586343792392683698986188353295615623661495648315462639153466919947983439271386756356699412937586569438541457567526913614293475858478172971514527338115916854666646176911646288824557943917466933118478997178378345737924759434269755748139999464386152368157177962957237841728823638912958554755434431291111749742761442835293945437622986291848865853471262748373751698929237974255733537149835856233999749468377933572228342395473895662826249742326977692673287914289154718899795712642155455618731358768182965321411725467451372673278861912837779294833115312757566353633418747324872549463976537318138149789551348416474475225694128145186486971759639924143132847824777876573949197887592266581155365885686831996663264878931424655698744944485822632854318935579523566241918399699118487713286726312828859913274821912749415126673876697958875997892295586547713314415229748985969451117571415856185498633388821661358182517645283531342412979925947382657724787353485875338852948819923481789546854851388286622971925788574186143755862629492693326488996491775693945921466323236674541836535217933856472172415492862989968545898188329498782387366344741136737896851313783837372825289973326439824278816557919376716462161818554757161419337781855346999555837767178315518381539416819525735674242793737241585558249287536765845593765849648816937946891525374458995735552789287468543227795112355952988429783419421318723753675947985829336526753672689735764192358844967128638466314512563946955572674494631987757876943797448569975955353848864156966428545757515589791671815588699938369356473968636464896577831582644236351998879546951548568947863138491344619336274317987666244887772517462878453475557947198132757885164853365224178936193325522928233414775623482676191327755998888657937572994536339583178777579495166966461949668159318893744153399569557833749234526727755849354924376317566876619616225969254541589393835776567755222765153344999412451328679912247362839355715831643993193747443967447365937822195163344248335642673623447222828743135716281872952629155711396837721177839834763724823164835681774693621826192659648364841476857781688682782239352587838668829718919525678429453892153113578413294229844652353258681374129459922528656768895511889319672618322413599982296654695847455172127188937473589942611626175913181546744298425944724851837652482724476927192162478684951216598617628996733382756349249759931577185617936194588396157377513972879621591939628313972619693682936516549728495941461414816455213997461789528397315254195546486299485977592786926243298719595268565896759835527645853887986148998819926997587831579157498677575254152523267929473347557565736883736864578748919725994646266713488864134934727982791123492988952654329111442813116953515626399615457686996286862673449796564771641751871999679555132795183415652211371649871792763659356955298323196929296438289182372486988741748756515132265514322433133998573756388769382862893828538469959787249316279425486342817275178318973546388654891187415696248437526376987127582846681216441758299272349243931647955171682494767467866691136596393115531735193162466866724759748588675198265541754557825321576923413787616738354519728468595135145419657775848384733484395532673236477616553281285383349999722548571935218639418781647568344349275146982326255166365285896217594399336513844854879562547461285676529794181451421893348886139659957446695976613998429433678544785315696975693825639528329324913788274993257589855661924282399323957831656281258818756541874222829478637969952723117179472188233979522925479589777926669748677471613939637136369485799639344297485752568777889743692263798419156856642569994214358551511459211929342482916693976642289867155725834971487376367548783489365525189498392674421211734583141516799519664626245243363973693334625923275277798999793776962229362357873459626816772361383839542593554188794173616945379258149567214837892877998635772367118295851763913893598181554652228116829434571417557179646765377951976441959773366177211722337564587154587718494965237863824754538811985784489164399453585151237985471143867946433291754318418566566277966941159851664874673743257849637778291594831612615855799877813759983841719392311528728954941724748598596436457928195641649418252514217848843657172491184928922847424864856393529953776172291927246831589989182325686941344436784152748235188787815999789946219244539966887957124717541561995816143262443711785277597424247862597921373977199489321293488624112667897958852348436584992366319151871222273882774799586926428767977341434595789419356587926544761422665187435111167495353188268183367944189284878826184198956965315866655584511595852557578914357878819768258782649119271596579775981133684394547576818844692424621519569956418115278943995973245547686129793715276541153161984645468498952697818969883636945249123636382277885514499574454682499351736251987967999655855825554491984273554588162833541155299886286587739167618249235931962288924933756156555794389847151289491954684133627766237195993243523448696742888635842359933422595238547521772721391575767684242866779632332278154877459575787357814989586567698622849983593883394938515236812771143512248211248132541285775718263685696783478126684383853587148647747397276753545351833744688183916818569294866141596761621424554584739472889625112968796632259595818392145732
