512329269508266069565540667488909360485693967428407519146234460856847782415544167173823929311876279922656612295598088148387604052517106441297005488119257321450446080746141221285262718817986946734288814018921146898093497492757956913213699353693267093832720596850267441559497231809872784638516480476537504846057278422667375185352941301552904744392096159136859744751814830561171448384979097298386370466168844788171483860532020933056425272363766918044861691946642745845281589928672526638200519744375218892712545353944335592793179390360054215643877389841394172445416720012752105798081784877726091816432668461498907252923168153407556585593682100572362428613343514143339397191971366239599522049195797254268198909921319344169469519375875580174335143312268718004684174652555826888992636675725202558946813731821610175102228677430461327264196979997628677665744415417565047743555190884009737740592062478912713050808881089857154059824854997476886992894197511666021636859079231722649119563114568781183417171191751241945704589299133332226293596355073049781626053844013427516282276983818767783475312845510813139639577923097521055106547336738528109145606680261846742882769506897913757343299983876175364804634108999517572579271504418012439157499228922219410682278013566131967442791262195655058258222591344853725685177388433203337241335777835991444365935626884174251187225650368865622715696226891437910319947861803616182169575956306063234302277476853730684219518509179623732398405070476660699596407706732888995421522358019259496814653005249173996743839519303744248054931176383493251315618032921669211175223276490240424289628924445709802810533108216570004564626133986861315196158933330716067149444063230761934958613524325072916614854727022691360172164761824636946446676306147117800163760995786522670877638604616856975704977256462327185947774058464128784459226515200234416512532518072017325117338013883119378031401775578607858399770972773544611282773339460282964295567627178213533841927273625276271540107796976969294343802287679257435833450460802630408839534322170187433094244498108939539862432377407717453806731258641929178534931747572700597456094762318999042972449492582067886677984152135622638734586957081658244725337232148113924477251532659377524795116013869135110112335342689909177528145664910921933564807079755096138634234845153517366583403761156255282117038161862562814782825284360771939169937747627422903521193714529052753691222129150014205790691824797280429640024255481696763296925777771146084764369782523419623699502430182574233325139385855735488616943721621316961720359953390794467944992216954547762915541642215825946386296380766373342278843670736295571139381682680311717493484947434167150315623322273281043689710626047419225394571684683178101468883888790679932587583646643894779324534296946061579996683513918249647828744294893322485579572333390889452793784703092705446041808313435206307733413561808991783424396882268426120716038697152906261523645781811459986559156214212536429985819796386993473824291338398320922317553241061997414729648499841662477091837849753809050442860051299317670153351855881067097650322040222891463725455153887715144394328954728582072486725203975967656997113386320902942357691359000176932619829125411187555005441023165025197966646481709021443500530299009125123496248243237215594753772206055564144369172130343325324657898108670454894104247740440046229125367696699704877478754692245448849061853139494660528593642734854317062542844791108837372723816344916464759631192538401796677627478261665150998243873182899168591240854795729138291215612544255919029506502669506874566277188704817268006174402424005339930443661778143296321851684822587530072579607111829460918967879724503931111432105432738970974526825793191727103945878158223897902935132379428059385275412419202748972351702188505878568803934733524736336601369341068365321328671901124959827544506062751452949559171443637344523115133293543922391738030977695637985692773874394601916926486541763321350954176651985385241401847661651798712264862493759682881131017988199104487457981689251414416028853378538634086199256835289688407254308559326494854443495872864051887394252249903276784425922117368068478382758498699595293896261864511113064069274483217621463942427727860495044436956975962148717777836268317576993967887231279286977732570316341435341773939634156777365207836096266696230147121416342926780376988897402198758607929168323101532560666032179867984149367783511923688317581094297478344465623025610047893132151416101860275591436715466904596954526796626760708419937571281752465196862648572763959381552906388267722386881646034622142776644245942732550767118287358160396041194789849654321988023867939783593630769030191164637379478074534654228074773295643350788099113465718589659695137540771956715898999571848591167026964981669235321456019638685375919477679166192632614357033524043960840755101831597281791874295409972731823327013495706345535579839851236314554615968876485009870178802479997141581094866992694144728343103934185600186854486911752861913999493489161248183049854695966661755052211477913761845903947577488468177149018601420568482824946102302630950594383510045262981477283756242285111634502794320824519654336352712143893671314499034739983989936352399251679104355965632004457876076932103202246819006738561674698612553147311523180153877057651282973623450429802293187549056995777889516435856804210650428705945215226939196554211679276872265842839960585930352459013969395117174102413530376347338553197144709634166739782110340051536834650236508862110389942266510349305604674634926151631102240658845639411774146943263469738277434395181714562504645428379301681758735433022583549359274343944798295463215468956469522681179763559755844183740878433187361444323132500542363817285311375139045061490072565314089500851976960725738961788634296925441221293397379091897263029427313448099549628473435